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
Provide guard for streamLumiStatus_ #22637
Conversation
The member variable streamLumiStatus_ in EventProcessor is a vector containing status information for each stream. The framework needs to know how many streams are still processing a Lumi. Before, it checked the status of each item in the container. However, looking at that entry was not guaranteed to be synchronized across all threads. Adding streamLumiActive_ atomic variable allows the check to be done just by reading the atomic plus the atomic functions as a way to guarantee that the entry information can safely be read across threads. This is done by having streamLumiActive_ be written right after streamLumiStatus_ entry was changed and then read from streamLumiActive_ before reading the entry from streamLumiStatus_.
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-22637/3988 |
A new Pull Request was created by @Dr15Jones (Chris Jones) for master. It involves the following packages: FWCore/Framework @cmsbuild, @smuzaffar, @Dr15Jones can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
please test |
+1 |
The tests are being triggered in jenkins. |
This pull request is fully signed and it will be integrated in one of the next master IBs after it passes the integration tests. This pull request will now be reviewed by the release team before it's merged. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
-1 Tested at: 76c986b The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: You can see the results of the tests here: I found follow errors while testing this PR Failed tests: Build
I found an error when building: >> Compiling python modules src/Validation/RecoMuon/python >> Plugins of all types refreshed. >> Done generating edm plugin poisoned information >> All python modules compiled gmake[1]: Leaving directory '/build/cmsbld/jenkins/workspace/ib-any-integration/CMSSW_10_1_X_2018-03-14-2300' gmake: *** [There are compilation/build errors. Please see the detail log above.] Error 1 The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: |
Comparison not run due to Build errors (RelVals and Igprof tests were also skipped) |
please test |
-1 Tested at: 76c986b The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: You can see the results of the tests here: I found follow errors while testing this PR Failed tests: Build
I found an error when building: >> Compiling python modules src/HeavyFlavorAnalysis/Skimming/python >> Done generating edm plugin poisoned information >> All python modules compiled >> Plugins of all types refreshed. gmake[1]: Leaving directory '/build/cmsbld/jenkins/workspace/ib-any-integration/CMSSW_10_1_X_2018-03-14-2300' gmake: *** [There are compilation/build errors. Please see the detail log above.] Error 1 The following merge commits were also included on top of IB + this PR after doing git cms-merge-topic: |
Comparison not run due to Build errors (RelVals and Igprof tests were also skipped) |
please test |
The tests are being triggered in jenkins. |
The tests are failing because the fix in ##22625 is not being included in the test build. |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
@fabiocos it would be good to get this in the IBs in order to eliminate another possible source of the assert we see ever so often. |
@fabiocos ping |
+1 |
The member variable streamLumiStatus_ in EventProcessor is a vector containing status information for each stream. The framework needs to know how many streams are still processing a Lumi. Before, it checked the status of each item in the container. However, looking at that entry was not guaranteed to be synchronized across all threads. Adding streamLumiActive_ atomic variable allows the check to be done just by reading the atomic plus the atomic functions as a way to guarantee that the entry information can safely be read across threads. This is done by having streamLumiActive_ be written right after streamLumiStatus_ entry was changed and then read from streamLumiActive_ before reading the entry from streamLumiStatus_.