Fix the HiveSlimEventLoopMgr exit code when there is a failure in the algorithms
See the attached example: a test with a single consumer but no producer that will always fails currently exits with exit code 0. The fact that there is a failure stops the loop in the HiveSlimEventLoop
but doesn't set the exit code to StatusCode::FAILURE
.
Example output without the fix
ApplicationMgr INFO Application Manager Configured successfully
ThreadPoolSvc INFO no thread init tools attached
AlgResourcePool INFO TopAlg list empty. Recovering the one of Application Manager
PrecedenceSvc INFO Assembling CF and DF task precedence rules
PrecedenceSvc INFO PrecedenceSvc initialized successfully
ApplicationMgr INFO Application Manager Initialized successfully
ApplicationMgr INFO Application Manager Started successfully
Gaudi::TestSuit... ERROR Gaudi::TestSuite::IntDataConsumer : Cannot retrieve '/Event/MyInt' from transient store.
Gaudi::TestSuit... ERROR Maximum number of errors ( 'ErrorMax':1) reached.
AlgTask WARNING Execution of algorithm Gaudi::TestSuite::IntDataConsumer failed
AvalancheSchedu... ERROR *** Stall detected, event context: s: 0 e: 0
AvalancheSchedu... ERROR Event 0 on slot 0 failed
PrecedenceSvc WARNING To trace temporal and topological aspects of execution flow, set DumpPrecedenceRules property to True
HiveSlimEventLo... FATAL Failed event detected on s: 0 e: 0
ApplicationMgr INFO Application Manager Stopped successfully
ApplicationMgr INFO Application Manager Finalized successfully
ApplicationMgr INFO Application Manager Terminated successfully
Example output with the fix (compare the last line):
ApplicationMgr INFO Application Manager Configured successfully
EventLoopMgr WARNING Unable to locate service "EventSelector"
EventLoopMgr WARNING No events will be processed from external input.
ApplicationMgr INFO Application Manager Initialized successfully
ApplicationMgr INFO Application Manager Started successfully
IntDataConsumer ERROR IntDataConsumer : Cannot retrieve '/Event/MyInt' from transient store.
IntDataConsumer ERROR Maximum number of errors ( 'ErrorMax':1) reached.
EventLoopMgr WARNING Execution of algorithm IntDataConsumer failed
EventLoopMgr ERROR Error processing event loop.
EventLoopMgr ERROR Terminating event processing loop due to errors
EventLoopMgr ERROR Terminating event processing loop due to errors
ApplicationMgr INFO Application Manager Stopped successfully
EventLoopMgr INFO Histograms converted successfully according to request.
ApplicationMgr INFO Application Manager Finalized successfully
ApplicationMgr ERROR Application Manager Terminated with error code 1
Edited by Juan Miguel Carceller