Project

General

Profile

Feature #2116

Provide more context in exception for unfound fcl parameter

Added by Christopher Backhouse almost 8 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
Category:
User Code
Target version:
Start date:
11/07/2011
Due date:
% Done:

100%

Estimated time:
Scope:
Internal
Experiment:
-
SSI Package:
Duration:

Description

Hi,

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
TableVersion
---- 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

find-param-req (892 Bytes) find-param-req Script to find fhicl parameter use in code. Christopher Green, 11/07/2011 03:47 PM

History

#1 Updated by Christopher Green almost 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

Hi,

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

%MSG
i.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.

#2 Updated by Christopher Green almost 8 years ago

  • Status changed from Resolved to Assigned
  • Assignee changed from Christopher Green to Marc Paterno
  • % Done changed from 0 to 60

#3 Updated by Christopher Green almost 8 years ago

  • Status changed from Assigned to Resolved
  • Assignee changed from Marc Paterno to Christopher Green

Resolved with 9a44147be.

#4 Updated by Christopher Green almost 8 years ago

  • Status changed from Resolved to Closed
  • % Done changed from 60 to 100


Also available in: Atom PDF