Skip to content

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

Merge request reports