-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Issues in concurrent Lumi/IOV safety in DQMOneEDAnalyzer<LuminosityBlockCache<...>> #37163
Comments
assign core,dqm |
New categories assigned: core,dqm @jfernan2,@ahmad3213,@rvenditti,@Dr15Jones,@smuzaffar,@emanueleusai,@makortel,@pbo0,@pmandrik you have been requested to review this Pull request/Issue and eventually sign? Thanks |
A new Issue was created by @makortel Matti Kortelainen. @Dr15Jones, @perrotta, @dpiparo, @makortel, @smuzaffar, @qliphy can you please review it and eventually sign/assign? Thanks. cms-bot commands are listed here |
In cmssw/DQM/BeamMonitor/plugins/AlcaBeamMonitor.cc Lines 227 to 232 in cbca23d
clears an std::vector<reco::VertexCollection> vertices_ and BeamSpotContainer beamSpotsMap_ (which is std::map<std::string, reco::BeamSpot> ).
In short, all lumi-dependent data should be moved into the The cmssw/DQM/BeamMonitor/plugins/AlcaBeamMonitor.cc Lines 297 to 300 in cbca23d
and used in globalEndLuminosityBlock()
The problem with this code is perhaps easiest demonstrated with e.g. a following sequence
The
Not related, but what is the aim of this fragment? cmssw/DQM/BeamMonitor/plugins/AlcaBeamMonitor.cc Lines 304 to 310 in cbca23d
Event::getByToken() does not throw any exception that would make sense for user code to catch. If the aim is to check if the input product exists, that could be done e.g. along
if (Handle<BeamSpot> recoBeamSpotHandle = iEvent.getHandle(scalerLabel_)) {
// product exists
} else {
// product doesn't exist
} |
In In addition, about the other cmssw/DQM/BeamMonitor/plugins/OnlineBeamMonitor.h Lines 60 to 61 in 2105cce
the mutable could be removed from processedLumis_ by filling it in globalEndLuminosityBlock() , and numberOfProcessedLumis_ appears to be unused.
|
Dear @makortel @francescobrivio @mmusich , I am working now on this issue (sorry to be taken so long). |
I should probably resume reviewing the modules listed in the issue description... |
The
and ChannelPlots
nested structs. These counters are incremented in the analyze() cmssw/DQM/CTPPS/plugins/CTPPSDiamondDQMSource.cc Lines 822 to 839 in b210401
cmssw/DQM/CTPPS/plugins/CTPPSDiamondDQMSource.cc Lines 1210 to 1223 in b210401
and are then used in globalEndLuminosityBlock() to fill some histogramscmssw/DQM/CTPPS/plugins/CTPPSDiamondDQMSource.cc Lines 1295 to 1301 in b210401
cmssw/DQM/CTPPS/plugins/CTPPSDiamondDQMSource.cc Lines 1305 to 1313 in b210401
In the presence of concurrent lumis these counters may have counts from other lumis than the one the |
|
The cmssw/DQM/HcalTasks/interface/RecHitTask.h Line 120 in 57ceb23
which is set to false in bookHistograms() cmssw/DQM/HcalTasks/plugins/RecHitTask.cc Line 411 in 57ceb23
and cmssw/DQM/HcalTasks/plugins/RecHitTask.cc Lines 414 to 417 in 57ceb23
(AFAICT both are effectively at beginRun) The variable is set to cmssw/DQM/HcalTasks/plugins/RecHitTask.cc Lines 596 to 600 in 57ceb23
and cmssw/DQM/HcalTasks/plugins/RecHitTask.cc Lines 685 to 689 in 57ceb23
It is then used in cmssw/DQM/HcalTasks/plugins/RecHitTask.cc Lines 842 to 845 in 57ceb23
With concurrent lumis it can happen that for a lumi 1 the condition to set |
This issue follows up my comment in #25090 (comment). Below is a list of
DQMOneEDAnalyzer
modules that make use ofedm::LuminosityCache
DQM/BeamMonitor/plugins/AlcaBeamMonitor.h
fixed in Fix LumiCache in AlcaBeamMonitor and OnlineBeamMonitor #41700DQM/BeamMonitor/plugins/OnlineBeamMonitor.h
fixed in Fix LumiCache in AlcaBeamMonitor and OnlineBeamMonitor #41700DQM/CTPPS/plugins/CTPPSCommonDQMSource.cc
DQM/CTPPS/plugins/CTPPSDiamondDQMSource.cc
DQM/CTPPS/plugins/DiamondSampicDQMSource.cc
DQM/CTPPS/plugins/TotemTimingDQMSource.cc
DQM/DTMonitorModule/interface/DTDataIntegrityTask.h
fixed in Move events/LS counter to LuminosityBlockCache in DTDataIntegrityTask #41874DQM/EcalMonitorTasks/interface/EcalDQMonitorTask.h
,DQM/EcalMonitorTasks/plugins/EcalDQMonitorTask.cc
DQM/EcalPreshowerMonitorModule/interface/ESIntegrityTask.h
DQM/HcalCommon/interface/DQTask.h
is a base class, deriving classes areDQM/HcalTasks/interface/HFRaddamTask.h
DQM/HcalTasks/interface/LEDTask.h
DQM/HcalTasks/interface/LaserTask.h
DQM/HcalTasks/interface/NoCQTask.h
DQM/HcalTasks/interface/PedestalTask.h
DQM/HcalTasks/interface/QIE10Task.h
DQM/HcalTasks/interface/QIE11Task.h
DQM/HcalTasks/interface/RawTask.h
DQM/HcalTasks/interface/RecHitTask.h
DQM/HcalTasks/interface/TPTask.h
DQM/HcalTasks/interface/UMNioTask.h
DQM/HcalTasks/plugins/HcalGPUComparisonTask.cc
DQM/L1TMonitor/interface/L1TdeRCT.h
DQM/Physics/src/QcdLowPtDQM.h
DQM/SiPixelMonitorDigi/interface/SiPixelDigiSource.h
DQM/SiStripMonitorDigi/interface/SiStripMonitorDigi.h
DQM/SiStripMonitorHardware/src/SiStripFEDMonitor.cc
DQM/TrigXMonitor/interface/L1Scalers.h
DQMOffline/L1Trigger/interface/L1TSync_Offline.h
On quick look some of them do not seem to be safe wrt concurrent lumis or IOVs. In the comments I'm going to write some notes about them.
The text was updated successfully, but these errors were encountered: