-
Notifications
You must be signed in to change notification settings - Fork 4.6k
Access PathsAndConsumesOfModules from new signal #47467
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
Access PathsAndConsumesOfModules from new signal #47467
Conversation
|
cms-bot internal usage |
|
A new Pull Request was created by @wddgit for master. It involves the following packages:
@Dr15Jones, @Martin-Grunewald, @cmsbuild, @emeschi, @fwyzard, @makortel, @mmusich, @smorovic, @smuzaffar can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
|
@cmsbuild, please test |
|
I just noticed that FastTimerService will also see a behavior change caused by this PR if used with SubProcesses. The activity that used to be in PostBeginJob would not have been executed for SubProcess signals and now would be. Not sure if this matters as we are not currently using SubProcess and discussing removing the SubProcess feature entirely. Possibly this fixes a problem also. The behavior of other services would not be affected by this PR, but they might be having similar problems if used with SubProcess. NVProfilerService uses the PostBeginJob signal and might or might not be affected (even if it has nothing to do with this PR). |
No. |
|
@cmsbuild, please abort |
|
test parameters:
|
|
@cmsbuild, please test
|
|
@mmusich Thanks. |
|
hold |
|
until I will have time to assess the impact on the FastTimerService |
|
Pull request has been put on hold by @fwyzard |
|
please test |
|
I think I resolved the comments. Let me know if there are more. Two changes since you looked at it:
|
|
+1 Size: This PR adds an extra 24KB to repository
Comparison SummarySummary:
|
|
+core |
|
+heterogeneous |
|
This might conflict with #47659. It will be trivial to fix, but I will rebase on top of that one as soon as it is merged. (Possibly git will be smart enough to handle it automatically). Probably not a good idea to merge them at the same time... |
|
+hlt |
|
Since this PR has more signatures than #47659, maybe it would be better to merge this one first if @cms-sw/daq-l2 signs soon? |
|
Either order should work fine. Just not both at the same time. I agree that doing this one first makes sense if we get all the signatures. |
|
+daq |
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @mandrenguyen, @antoniovilela, @sextonkennedy, @rappoccio (and backports should be raised in the release meeting by the corresponding L2) |
|
+1 |
PR description:
Use the new LookupInitializationComplete signal to get access to the PathsAndConsumesOfModules object that is available to Services. Previously the PreBeginJob signal was used for this purpose, but since PR #46929 was merged, the object is only partially filled at preBeginJob. When the new signal is emitted it is fully filled. PathsAndConsumesOfModules now includes information related to EventSetup modules that previously did not exist. That is the part that is not filled at preBeginJob.
This shouldn't affect the output of anything (except DependencyGraph service used with SubProcesses, see below).
This PR removes the argument from the preBeginJob signal interface. For several of the services modified in this PR, that argument is not used and the PR just deletes it from the argument list. These changes are trivial and the fact that those services compile should be a sufficient test.
This PR modifies other affected services to use the new signal.
There is one Service where the changes are more complex. That is the NVProfilerService. The PathsAndConsumesOfModules object is used to size some vectors at PreBeginJob. Not only is this case more complicated but the current implementation appears to be incorrect. There is a bug that could cause out of bounds vector access. The size of the ProcessCallGraph was being used to size the vectors, but that size could be incorrect if modules are deleted. The framework will delete unused modules. The ID from the ModuleDescription is incremented for every module constructed, including ones that are later deleted. This ID is not modified when a module is deleted. The index used to access the vector is the ID from the ModuleDescription, but in the old version the size is a count of undeleted modules from PathsAndConsumesOfModules and that does have deleted modules removed. This is fixed in the new version where the size is derived from the number of modules constructed and it counts the ones that later get deleted.
Note that there are no tests in the CMSSW repository of NVProfilerService. In fact there are no references to it at all in CMSSW. Is there a test of NVProfilerService somewhere that I could run? Or is there an expert willing to test this?
Should I develop tests for these two services? If necessary, this could be accomplished in a separate PR...
Resolves cms-sw/framework-team#1194
PR validation:
Relied on existing unit tests which all pass.