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
Fix thread-safety issues in TrackingMonitor #29143
Conversation
These are needed by TrackAnalyzer
Using the underlying TH* object is not guaranteed to be thread-safe.
The code-checks are being triggered in jenkins. |
+code-checks Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-29143/14075
|
A new Pull Request was created by @Dr15Jones (Chris Jones) for master. It involves the following packages: DQM/TrackingMonitor @andrius-k, @kmaeshima, @schneiml, @cmsbuild, @jfernan2, @fioriNTU can you please review it and eventually sign? Thanks. cms-bot commands are listed here |
please test |
The tests are being triggered in jenkins. |
+1 |
Comparison job queued. |
Comparison is ready Comparison Summary:
|
+1 |
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. @davidlange6, @silviodonato, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
|
||
//NOTE: for full reproducibility when using threads, this loop needs to be | ||
// a critical section |
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.
How important is "full reproducibility when using threads"? (just thinking how soon a solution for that needs to found)
(e.g. are the divisions and get/setBinContent something that needs to be done on every event, or should they move to harvesting?)
@makortel I already have a good idea how to make it reproducible, even without harvesting. I didn't make that change in this pull request as I was just doing the minimum necessary to get rid of the segmentation faults. |
Ok, great! |
+1 |
@Dr15Jones we got many seg fault in CMSSW_11_1_X_2020-03-09-2300 (including #29143) due to TrackingMonitor |
@silviodonato My code that was meant to prevent deadlocks failed so we see deadlocks in the IB. I have isolated my mistake and I have a fix coming in the next few minutes which properly handles the deadlock prevention. |
see #29164 |
PR description:
Changing TrackingMonitor into a stream module uncovered thread-safety issues. These changes now make all activities thread-safe by avoiding direct use of the underlying ROOT objects.
PR validation:
The code compiles.