Change default exception handling
Change the default value of fcl parameter services.scheduler.defaultExceptions from true to false.
I am going to change all microboone production fcl files anyway, but I thought it would be worth to have this debate in the art stakeholders meeting.
#2 Updated by Christopher Green about 5 years ago
- Category set to Application
- Status changed from New to Feedback
- SSI Package art added
- SSI Package deleted (
Currently collecting feedback from an email to stakeholders (text below):
Issue #9378 requests that the default exception handling be adjusted for certain error cases. The initiating issue is #9348, where an invalid ServiceHandle request triggered an exception whose handling resulted in skipping the event instead of the preferred behavior, which was to rethrow.
Here, “rethrow" means to attempt a graceful shutdown, calling endSubRun, endRun, endJob, the relevant destructors, and properly closing all files. In most cases, this ensures that any TFileService-generated file is readable, that any data-product ROOT output file is readable, and that any generated log files are complete.
We are thus asking the stakeholders to comment the following question. Which of the following exceptions, whose default handlings correspond to “SkipEvent”, should instead be changed to “Rethrow”?
ProductNotFound (used in product retrieval)
InvalidReference (used in art::Ptr object retrieval)
NullPointerError (used in retrieving principals)
EventTimeout (not used in art/artdaq)
DataCorruption (used in I/O)
ServiceNotFound (new exception case to resolve #9348)
NotFound (used primarily for metadata retrieval)
Kyle (for the artists)
#3 Updated by Kyle Knoepfel almost 3 years ago
- Status changed from Feedback to Closed
- Assignee set to Kyle Knoepfel
- Target version set to 2.09.00
- % Done changed from 0 to 100
Per stakeholder agreement, all
SkipEvent default actions have been removed. Note that it is still possible to specify a
SkipEvent action for a given exception through the configuration (e.g.):
services.scheduler.SkipEvent: [ProductNotFound, ...] # sequence of exception categories
Implemented with commit art:7df67f7d.