Allow for reconfiguration in a DAQ environment
While working on DarkSide-50 DAQ, we discovered that there are singletons in art that can only be configured once per process. This seems to imply that in order to reconfigure the compression or filter algorithms in art in a DAQ system, we would need to shut down the MPI program and restart it. It would be nice to be able to reconfigure those algorithms without restarting the program.
Here are some email excerpts on this subject:
Something else that I noticed... When I start a second run, I get the following message:
%MSG-s ArtException: RootOutput:normalOutput@Construction 11-Dec-2012 13:37:43 CST ModuleConstruction
cet::exception caught in art
---- LogicError BEGIN
ProductMetaData::create_instance called more than once.
---- LogicError END
A LogicError is certainly something to be concerned about, because it's usually configured (and should certainly be treated, in general) as a fatal exception.
You need to be very careful with the exec that starts art: art has several singletons, and this particular singleton can only be configured once. In order to start a new run, you will need to add setters for run_id_ and subrun_id_ to EventStore. If you need to reconfigure something else (or, currently, force the OutputModule to start a new file) I don't think there's currently an alternative to re-starting the event builder exec with an updated configuration.
I realize that this isn't what you might like to hear, but experimental requirements have never led to us even looking into what it would take to make art, "restartable", in the way that you want. I'm hoping however that making the simple tweak to EventStore will get you the behavior you require. If you need to be able to close and open output files then we could do that, but it would require quite some effort to make it work robustly since it violates several fundamental assumptions in the guts of art.
OK. I haven't thought too much about this yet, but it seems like I should create the EventStore (and associated artapp) the first time that the system (and each individual EventBuilder application) is initialized and use it for the lifetime of the process. I would need to add an error report if System Control tries to reconfigure art between runs without shutting down the application.
#1 Updated by Christopher Green about 7 years ago
- Due date set to 09/30/2013
- Category set to Infrastructure
- Status changed from New to Feedback
- Target version set to 1.09.00
- % Done changed from 0 to 90
- Estimated time set to 2.00 h
- Scope set to Internal
- Experiment DarkSide added
- SSI Package art added
This is at least partially implemented by the work done for issue #4361 and by the original work done by Jim and Marc for the
It is certainly possible to reconfigure modules, but the problem comes in that the metadata is invalidated if producers or filters are reconfigured.
Please see further comments on issue #4361. I propose to implement the metadata invalidity warning and mark this issue resolved. Would you concur?