Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not add new chunks to already-large splits. #7186

Merged
merged 1 commit into from
Jan 16, 2015

Conversation

bbockelm
Copy link
Contributor

With this, we refuse to add new entries to a chunk list that is
already 1000 entries. If both splits are above 1000 entries, then
an exception is thrown.

As the upper layers of CMSSW guarantee this shouldn't happen, I
feel throwing an exception is the correct behavior (compared to
error recovery).

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @bbockelm (Brian Bockelman) for CMSSW_7_4_X.

Do not add new chunks to already-large splits.

It involves the following packages:

Utilities/XrdAdaptor

@cmsbuild, @Dr15Jones, @ktf, @nclopezo can you please review it and eventually sign? Thanks.
@Martin-Grunewald, @wddgit this is something you requested to watch as well.
You can sign-off by replying to this message having '+1' in the first line of your reply.
You can reject by replying to this message having '-1' in the first line of your reply.
If you are a L2 or a release manager you can ask for tests by saying 'please test' in the first line of a comment.

@Dr15Jones
Copy link
Contributor

@bbockelm Brian, can you comment as to why we need the change?

@bbockelm
Copy link
Contributor Author

The xrootd client can only handle vectors of size 1024. If the splitting algorithm results in a too-large vector of IO chunks, then later sanity check code will assert.

See this example bug report:

https://hypernews.cern.ch/HyperNews/CMS/get/edmFramework/3413.html

throw ex;
}
if (req1.size() < 1000) {consumeChunkFront(front, tmp_iolist, req1, chunk1);}
if (req2.size() < 1000) {consumeChunkBack(front, tmp_iolist, req2, chunk2);}
}
std::sort(req1.begin(), req1.end(), [](const IOPosBuffer & left, const IOPosBuffer & right){return left.offset() < right.offset();});
std::sort(req2.begin(), req2.end(), [](const IOPosBuffer & left, const IOPosBuffer & right){return left.offset() < right.offset();});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI you can acutally reuse the same lambda by doing

auto compare = [](const IOPosBuffer & left, const IOPosBuffer & right){return left.offset() < right.offset();};

@Dr15Jones
Copy link
Contributor

+1

@Dr15Jones
Copy link
Contributor

please test

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_X IBs unless changes or unless it breaks tests.

@davidlange6
Copy link
Contributor

looks like this PR needs a rebase.

With this, we refuse to add new entries to a chunk list that is
already 1000 entries.  If both splits are above 1000 entries, then
an exception is thrown.

As the upper layers of CMSSW guarantee this shouldn't happen, I
feel throwing an exception is the correct behavior (compared to
error recovery).
@bbockelm
Copy link
Contributor Author

Hi @davidlange6 - I think github got confused somehow; I couldn't find any merge conflicts.

In desperation, I rebased on top of the latest of the CMSSW_7_4_X (sorry Chris!) and now github has a green light.

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_X IBs unless changes or unless it breaks tests.

@cmsbuild
Copy link
Contributor

The tests are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

-1
Tested at: 2364d5b
When I ran the RelVals I found an error in the following worklfows:
1306.0 step3

runTheMatrix-results/1306.0_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15+MINIAODMCUP15/step3_SingleMuPt1_UP15+SingleMuPt1_UP15+DIGIUP15+RECOUP15+HARVESTUP15+MINIAODMCUP15.log

25202.0 step3

runTheMatrix-results/25202.0_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15+MINIAODMCUP15/step3_TTbar_13+TTbar_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15+MINIAODMCUP15.log

you can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-7186/1900/summary.html

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_X IBs unless changes (but tests are reportedly failing).

@davidlange6
Copy link
Contributor

please test

(previous errors unrelated (and fixed now))


From: cmsbuild [notifications@github.com]
Sent: 15 January 2015 22:03
To: cms-sw/cmssw
Cc: David Lange
Subject: Re: [cmssw] Do not add new chunks to already-large splits. (#7186)

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_X IBs unless changes (but tests are reportedly failing).


Reply to this email directly or view it on GitHubhttps://github.com//pull/7186#issuecomment-70161156.

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

This pull request is fully signed and it will be integrated in one of the next CMSSW_7_4_X IBs unless changes (tests are also fine). This pull request will be automatically merged.

cmsbuild added a commit that referenced this pull request Jan 16, 2015
Do not add new chunks to already-large splits.
@cmsbuild cmsbuild merged commit bae448e into cms-sw:CMSSW_7_4_X Jan 16, 2015
@cmsbuild
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants