Skip to content
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

DQM: Fix empty lumis with per-lumi plots in DQMOneEDAnalyzer #29738

Merged
merged 4 commits into from
May 5, 2020

Conversation

schneiml
Copy link
Contributor

@schneiml schneiml commented May 5, 2020

PR description:

As reported in #29605, it can happen that a DQMOneEDAnalyzer does not
produce its per lumi MEs, because there were no events in the
Lumisection and it only calls enterLumi as needed per event.

To prevent this, we need to make sure that lumi ME are always created
for every ME, but we can't have lumi transitions in DQMOneEDAnalyzer, so
it needs to happen in a global callback. But there we can't safely use
enterLumi, since that would corrupt the module's local MEs.

The solution is to have a new method, initLumi, dedicated to
initializing global MEs, but not touching local MEs. This is actually a
nice thing in general, since now initLumi/cleanupLumi form a symmetrical
pair (create/destroy global MEs), as well as enterLumi/leaveLumi (update
local MEs). All of these are idempotent, as before.

There are a bunch of corner cases around booking: initLumi must be
called before enterLumi, but the global callback that triggers it
globally might (will) happen before booking has happened for the module.
So we also need to do it after booking. There is a race related to lumi
MEs if globalBeginLumi can happen before beginRun finishes for all
plugins. This should not happen for now, as I understand.

This should fix #29605.

The "empty lumis" unit test is quite ugly, since EmptySource does not really support empty lumisections.

PR validation:

4.28 passes in my local test. A new unit test tests empty lumisections.

schneiml added 4 commits May 5, 2020 14:22
As reported in cms-sw#29605, it can happen that a DQMOneEDAnalyzer does not
produce it's per lumi MEs, because there were no events in the
Lumisection and it only calls enterLumi as needed per event.

To prevent this, we need to make sure that lumi ME are always created
for every ME, but we can't have lumitransitions in DQMOneEDAnalyzer, so
it needs to happen in a global callback. But there we can't safely use
enterLumi, since that would corrupt the module's local MEs.

The solution is to have a new method, initLumi, dedicated to
initializing global MEs, but not touching local MEs. This is actually a
nice thing in general, since now initLumi/cleanupLumi form a symmetrical
pair (create/destroy global MEs), as well as enterLumi/leavLumi (update
local MEs). All of these are idempotent, as before.

There are a bunch of corner cases aorund booking: initLumi *must* be
called before enterLumi, but the global callback that triggers it
globally might (will) happen before booking has happened for the module.
So we also need to do it after booking. There is a race related to lumi
MEs if globalBeginLumi can happen *before* beginRun finishes for all
plugins. This should not happen for now.
Turns out EmptySource does not really support that...
@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

The code-checks are being triggered in jenkins.

@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

+code-checks

Logs: https://cmssdt.cern.ch/SDT/code-checks/cms-sw-PR-29738/15141

  • This PR adds an extra 48KB to repository

@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

A new Pull Request was created by @schneiml (Marcel Schneider) for master.

It involves the following packages:

DQMServices/Core
DQMServices/Demo

@andrius-k, @kmaeshima, @schneiml, @cmsbuild, @jfernan2, @fioriNTU can you please review it and eventually sign? Thanks.
@barvic this is something you requested to watch as well.
@silviodonato, @dpiparo you are the release manager for this.

cms-bot commands are listed here

@silviodonato
Copy link
Contributor

please test workflow 4.28 134.807 136.757 1360.0 25210.0
Thanks @schneiml for providing a fix in time for 11_1_0_pre7

@silviodonato
Copy link
Contributor

ping @cmsbuild

@silviodonato
Copy link
Contributor

silviodonato commented May 5, 2020

@cmsbuild please test workflow 4.28,134.807,136.757,1360.0,25210.0

@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

The tests are being triggered in jenkins.
Test Parameters:

@smuzaffar
Copy link
Contributor

@silviodonato tests were not started as the comment was not wrong. Please see http://cms-sw.github.io/cms-bot-cmssw-cmds.html for correct syntax. Basically you have to use , to separate the workflows.

@silviodonato
Copy link
Contributor

@silviodonato tests were not started as the comment was not wrong. Please see http://cms-sw.github.io/cms-bot-cmssw-cmds.html for correct syntax. Basically you have to use , to separate the workflows.

thanks!

@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

+1
Tested at: b4c63f1
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-60a395/6090/summary.html
CMSSW: CMSSW_11_1_X_2020-05-05-1100
SCRAM_ARCH: slc7_amd64_gcc820

@cmsbuild
Copy link
Contributor

cmsbuild commented May 5, 2020

Comparison job queued.

@silviodonato
Copy link
Contributor

merge

@cmsbuild
Copy link
Contributor

cmsbuild commented May 6, 2020

+1
Tested at: b4c63f1
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-60a395/6122/summary.html
CMSSW: CMSSW_11_1_X_2020-05-05-1100
SCRAM_ARCH: slc7_amd64_gcc820

@cmsbuild
Copy link
Contributor

cmsbuild commented May 6, 2020

Comparison job queued.

@cmsbuild
Copy link
Contributor

cmsbuild commented May 6, 2020

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-60a395/6090/summary.html

@slava77 comparisons for the following workflows were not done due to missing matrix map:

  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/134.807_RunDoubleEGPrpt2015C+RunDoubleEGPrpt2015C+HLTDR2_25ns+RECODR2_25nsreHLT_HIPM+HARVESTDR2
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/136.757_RunMuOnia2016D+RunMuOnia2016D+HLTDR2_2016+RECODR2_2016reHLT_skimMuOnia_HIPM+HARVESTDR2
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/1360.0_TTbar012Jets_NLO_Mad_py8_Evt_13+TTbar012Jets_NLO_Mad_py8_Evt_13+DIGIUP15+RECOUP15+HARVESTUP15
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/25210.0_TTbar012Jets_NLO_Mad_py8_Evt_13+TTbar012Jets_NLO_Mad_py8_Evt_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/4.28_HighMet2011A+HighMet2011A+HLTDSKIM+RECODR1reHLT+HARVESTDR1reHLT

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 0 differences found in the comparisons
  • DQMHistoTests: Total files compared: 34
  • DQMHistoTests: Total histograms compared: 2696239
  • DQMHistoTests: Total failures: 1
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2695919
  • DQMHistoTests: Total skipped: 319
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 33 files compared)
  • Checked 147 log files, 16 edm output root files, 34 DQM output files

@silviodonato
Copy link
Contributor

See #29743

@cmsbuild
Copy link
Contributor

cmsbuild commented May 6, 2020

Comparison is ready
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-60a395/6122/summary.html

@slava77 comparisons for the following workflows were not done due to missing matrix map:

  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/134.807_RunDoubleEGPrpt2015C+RunDoubleEGPrpt2015C+HLTDR2_25ns+RECODR2_25nsreHLT_HIPM+HARVESTDR2
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/136.757_RunMuOnia2016D+RunMuOnia2016D+HLTDR2_2016+RECODR2_2016reHLT_skimMuOnia_HIPM+HARVESTDR2
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/1360.0_TTbar012Jets_NLO_Mad_py8_Evt_13+TTbar012Jets_NLO_Mad_py8_Evt_13+DIGIUP15+RECOUP15+HARVESTUP15
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/25210.0_TTbar012Jets_NLO_Mad_py8_Evt_13+TTbar012Jets_NLO_Mad_py8_Evt_13+DIGIUP15_PU25+RECOUP15_PU25+HARVESTUP15_PU25
  • /data/cmsbld/jenkins/workspace/compare-root-files-short-matrix/data/PR-60a395/4.28_HighMet2011A+HighMet2011A+HLTDSKIM+RECODR1reHLT+HARVESTDR1reHLT

Comparison Summary:

  • No significant changes to the logs found
  • Reco comparison results: 4 differences found in the comparisons
  • DQMHistoTests: Total files compared: 34
  • DQMHistoTests: Total histograms compared: 2696239
  • DQMHistoTests: Total failures: 2
  • DQMHistoTests: Total nulls: 0
  • DQMHistoTests: Total successes: 2695918
  • DQMHistoTests: Total skipped: 319
  • DQMHistoTests: Total Missing objects: 0
  • DQMHistoSizes: Histogram memory added: 0.0 KiB( 33 files compared)
  • Checked 147 log files, 16 edm output root files, 34 DQM output files

@jfernan2
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

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 be automatically merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Segmentation fault in HcalOfflineHarvesting in recent IB
5 participants