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
Enforce consumes interface in output modules #13600
Enforce consumes interface in output modules #13600
Conversation
A new Pull Request was created by @wmtan for CMSSW_8_1_X. It involves the following packages: DQMServices/FwkIO @smuzaffar, @civanch, @Dr15Jones, @cvuosalo, @emeschi, @mdhildreth, @cmsbuild, @deguio, @slava77, @mommsen, @vanbesien, @davidlange6 can you please review it and eventually sign? Thanks. cms-bot commands are list here #13028 |
please test |
The tests are being triggered in jenkins. |
-1 Tested at: 2134fd5 ---> test runtestRecoLocalCaloHGCalRecProducers had ERRORS you can see the results of the tests here: |
@cmsbuild The three failing unit tests fail in the base IB. The failures have nothing to do with this PR. |
please test |
+1 |
The tests are being triggered in jenkins. |
@cmsbuild @Dr15Jones The test failures appear to have nothing to do with this PR. The runtestTqafTopEventSelection test fails in the base IB. The TestRunnerPhysicsToolsCondLiteIO test runs successfully in my work area with this PR, although I am running on a slightly older IB. |
@cmsbuild @Dr15Jones OK, I ran the failing TestRunnerPhysicsToolsCondLiteIO with this PR against the latest IB, CMSSW_8_1_X_2016-03-09-1100, and the test passed. I cannot reproduce this test failure. So neither unit test failure is related to this PR. |
} | ||
} | ||
|
||
bool const fastCloning = (branchType == InEvent) && (whyNotFastClonable_ == FileBlock::CanFastClone); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can only fast clone events?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I see that was in the original logic.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Dr15Jones A decision was made a long time ago to never fast copy anything in the run or lumi trees. It makes life a lot simpler.
Done with next review |
Pull request #13600 was updated. @smuzaffar, @civanch, @Dr15Jones, @cvuosalo, @emeschi, @mdhildreth, @cmsbuild, @deguio, @slava77, @mommsen, @vanbesien, @davidlange6 can you please check and sign again. |
Incorporated latest comments from Chris Jones. Should be all done now. |
@cmsbuild please test |
The tests are being triggered in jenkins. |
-1 Tested at: 1abdfce ---> test runtestTqafTopEventSelection had ERRORS you can see the results of the tests here: |
Enforce consumes interface in output modules
Output modules currently have direct access to EventPrincipal, RunPrincipal, and LuminosityBlockPrincipal. Calls to getByLabel() or getForOutput() functions of Principal bypass the consumes interface, so missing consumes calls will not be detected. This PR modifies output modules so that they do not access Principals directly. Rather, they use new classes EventForOutput, LuminosityBlockForOutput, and RunForOutput, similar to the Event, LuminosityBlock, and Run classes used by other modules. Furthermore, reading data is done only by getByToken(), so the consumes interface is enforced everywhere. getByToken() is the only get method supported by the new classes.