cms-sw / cmssw

CMS Offline Software
http://cms-sw.github.io/
Apache License 2.0
1.07k stars 4.28k forks source link

SkipEvent not available in process.options from 13_3_X? #43793

Open syuvivida opened 7 months ago

syuvivida commented 7 months ago

Hello, We are doing tests of our DQM machines using 13_3_X and 14_0_X and found the DQM client hcalcalib failed with the following message: ----- Begin Fatal Exception 26-Jan-2024 10:41:05 CET----------------------- An exception of category 'Configuration' occurred while [0] Constructing the EventProcessor [1] Validating top level 'options' ParameterSet for process 'HCALDQM' Exception Message: Illegal parameter found in configuration. The parameter is named: 'SkipEvent' You could be trying to use a parameter name that is not allowed for this plugin or it could be misspelled. ----- End Fatal Exception ------------------------------------------------- We didn't see this kind of error when running with 13_2_X or older. The culprit is this part of the code. We also find if we insert the same lines of codes in other DQM clients, we got the same crash.

If instead, we use process.options = cms.untracked.PSet( Rethrow = cms.untracked.vstring( "ProductNotFound", "TooManyProducts", "TooFewProducts" ),

DQM client of hcalcalib could run without crashing. But we are not sure if our understanding is correct, i.e.

  1. Is SkipEvent deprecated from the options from 13_3_X?
  2. Is there a similar command to skip events with a different syntax?
  3. Is HCAL ok without using skip event and simply put "ProductNotFound" in the block of "Rethrow"? It would also be the best for HCALDQM experts (@DryRun @lwang046 ) to make this code change and commit to the master branch and 13_3_X.

Thanks!!

Eiko, Dimitris for DQM-DC

cmsbuild commented 7 months ago

cms-bot internal usage

cmsbuild commented 7 months ago

A new Issue was created by @syuvivida .

@makortel, @sextonkennedy, @rappoccio, @antoniovilela, @Dr15Jones, @smuzaffar can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

Dr15Jones commented 7 months ago

Documentation for the options PSet can be found here

https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideEDMParametersForModules#The_options_Parameter_Set

In short, the SkipEvent hasn't really worked since we transitioned to multi-threading. The closest replacement would be TryToContinue.

makortel commented 7 months ago

assign dqm

cmsbuild commented 7 months ago

New categories assigned: dqm

@rvenditti,@syuvivida,@tjavaid,@nothingface0,@antoniovagnerini you have been requested to review this Pull request/Issue and eventually sign? Thanks

syuvivida commented 7 months ago

I replaced the part of SkipEvent in hcalcalib DQM client with ` TryToContinue= cms.untracked.vstring( 'ProductNotFound' )

` and the client could run without problems. If @lwang046 @DryRun agree, we will proceed with this change?

Dr15Jones commented 7 months ago

So if code in DQM/Integration/python/clients is critical, please create unit tests that exercise it. In that way, any future changes will be tested as part of the pull request.

makortel commented 7 months ago

So if code in DQM/Integration/python/clients is critical, please create unit tests that exercise it. In that way, any future changes will be tested as part of the pull request.

I thought they were already being run via the tests defined in https://github.com/cms-sw/cmssw/blob/d0954a1f327baf260e0c6e29c8b8adb214800359/DQM/Integration/test/BuildFile.xml#L1 Does it miss some cases?

mmusich commented 7 months ago

Does it miss some cases?

in the specific case, seems we do:

https://github.com/cms-sw/cmssw/blob/d0954a1f327baf260e0c6e29c8b8adb214800359/DQM/Integration/test/BuildFile.xml#L34

(the failing client is not run in the unit tests)

syuvivida commented 7 months ago

@makortel @Dr15Jones @mmusich , It would be nice to test all online DQM clients. Then, I assume we need to add also a few LSs of DQMCalibration, DQMPPSRandom, DQMEventDisplay in this area?

Sorry, this is before my time, is there any reason why some DQM clients use unittestinputsource_cfi.py which takes input from a dataset, while others (like pixelgpu, beamhlt..) use unitteststreamerinputsource_cfi.py which takes the DQM streamers stored in cms-data? Thanks!!

mmusich commented 7 months ago

is there any reason why some DQM clients use unittestinputsource_cfi.py which takes input from a dataset, while others (like pixelgpu, beamhlt..) use unitteststreamerinputsource_cfi.py which takes the DQM streamers stored in cms-data? Thanks!!

Historically there wasn't a cms-data area to store streamers so it wasn't possible to test with streamer data, but only on regular RAW data retrieved via DAS query. Now it is, after the creation of the aera.