cms-sw / cmssw

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

Illegal characters in module labels #27696

Open schneiml opened 5 years ago

schneiml commented 5 years ago

Dear all,

CMSSW bans certain characters from module labels, specifically including _. However, it seems to be not very strict about that: having _ in module labels is a fairly common thing [1].

Now, that turns into a problem once one tries to produce products in these modules: now EDM complains:

----- Begin Fatal Exception 05-Aug-2019 18:07:03 CEST-----------------------
An exception of category 'IllegalCharacter' occurred while
   [0] Constructing the EventProcessor
   [1] Constructing module: class=EfficiencyAnalyzer label='LooseMuonEfficiencyAnalyzer_miniAOD'
Exception Message:
Module label 'LooseMuonEfficiencyAnalyzer_miniAOD' contains an underscore ('_'), which is illegal in a module label.
----- End Fatal Exception -------------------------------------------------

Now, I wonder how to proceed with this. I can do a bunch of batch-replacing to get rind of these labels, but I wonder if EDM should consider enforcing this rule in general at some point?

[1] https://cmssdt.cern.ch/dxr/CMSSW/search?q=regexp%3A%27%5Cw%2B_%5Cw%2B+*%3D+*DQMEDAnalyzer%27&case=false

cmsbuild commented 5 years ago

A new Issue was created by @schneiml Marcel Schneider.

@davidlange6, @Dr15Jones, @smuzaffar, @fabiocos, @kpedro88 can you please review it and eventually sign/assign? Thanks.

cms-bot commands are listed here

Dr15Jones commented 5 years ago

assign core

cmsbuild commented 5 years ago

New categories assigned: core

@Dr15Jones,@smuzaffar you have been requested to review this Pull request/Issue and eventually sign? Thanks

Dr15Jones commented 5 years ago

@schneiml the use of _ in a module label only needs to be enforced with EDProducers as extra _ mess up the branch names for the data products. We could make the restriction more wide-spread.

schneiml commented 5 years ago

Well, we converted all of the DQMEAnalyzers to EDProducer base classes quite a while ago. That might explain where all of these cases come from, though EDM clearly did not complain as long as the EDProducers did not produce anything (-persistent?).