Provide more context in exception for unfound fcl parameter
We've recently had a few cases of errors where either a new parameter was added to a module incompletely, or someone simply ends up in an inconsistent state by not updating sufficient packages.
In this case you get an error like:
%MSG-s ArtException: nova 07-Nov-2011 10:30:16 CST JobSetup
cet::exception caught in art
---- Can't find key BEGIN
---- Can't find key END
If you don't recognize the key (fortunately people on the mailing list tend to, mostly because the breaking change is only a few days old) the only way to figure out what's going on is to catch the exception in a debugger, or to grep the entire codebase for that key.
Is it possible to simply provide more context in this message? Ideally the module that is trying to look this key up, but probably simpler the name of the ParameterSet and/or the fcl file it comes from?
Thanks - Chris
#1 Updated by Christopher Green over 8 years ago
- File find-param-req find-param-req added
- Tracker changed from Bug to Feature
- Category set to User Code
- Status changed from New to Resolved
- Assignee set to Christopher Green
- Target version set to 1.00.06
Note: if the deficiency is in a normal module or output module, the context is in the message header, viz:
%MSG-s ArtException: SimpleDerivedAnalyzer:a1@Construction 07-Nov-2011 15:35:17 CST ModuleConstruction cet::exception caught in art ---- Can't find key BEGIN nvalues ---- Can't find key END %MSG(construction of the SimpleDerivedAnalyzer with label, "a1") or
%MSG-s ArtException: RootOutput:out1@Construction 07-Nov-2011 15:33:37 CST ModuleConstruction cet::exception caught in art ---- Can't find key BEGIN fileName ---- Can't find key END %MSG(construction of the RootOutput with label, "out1").
For a problem with the input source configuration, one gets:
%MSG-s ArtException: art 07-Nov-2011 15:38:05 CST JobSetup cet::exception caught in art ---- Configuration BEGIN FailedInputSource Configuration of main input source has failed ---- Can't find key BEGIN fileNames ---- Can't find key END ---- Configuration END %MSGi.e. although the context doesn't say explicitly, you are told that the problem is in "the main input source."
Your current problems are with service construction. We should be able to add some context to the exception after the fact -- Marc P. will work on that.
In the meantime, I have provided a quick script to tell you with no false positives exactly in which source file(s) a particular parameter is being requested, and whether that is a module, source or service. It will be included with the next ART, but is attached to this ticket update. Let me know if you have trouble accessing it.
Marc will be in touch with you with more details on the service exception trapping part of the solution.