13A test for an incorrect handling of exceptions from algorithms running in sub-slots
15Throwing an exception causes the event to be marked as failed.
16It also means that the part of the code that updates the algorithm state is bypassed.
17Since the AlgExecStateSvc does not (currently) understand sub-slots,
18if the exception is thrown by an alg in sub-slot 2, the state for that same alg
19in sub-slot 1 is retrieved.
21So, it is possible to have a failed event, without any algorihms in ERROR state.
22The scheduler does not have handling for this, and hangs.
26from Configurables
import (
28 AvalancheSchedulerSvc,
31 GaudiTesting__StopLoopAlg,
60 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO
71 ThreadPoolSize=threads, OutputLevel=INFO, VerboseSubSlots=
True
84a1 = Test__ViewTester(
"A1")
85a1.baseViewName =
"view"
86a1.viewNumber = viewsPerEvt
87a1.viewNodeName =
"viewNode"
89a2 = Test__ViewTester(
"A2")
95a3 = GaudiTesting__StopLoopAlg(
"A3", EventCount=3, Mode=
"exception")
97a4 = Test__ViewTester(
"A4")
100for algo
in [a1, a2, a3, a4]:
101 algo.Cardinality = cardinality
102 algo.OutputLevel = INFO
104viewNode = Gaudi__Sequencer(
105 "viewNode", Members=[a2, a3], Sequential=
False, ShortCircuit=
False, OutputLevel=INFO
108createViewSeq = Gaudi__Sequencer(
109 "createViewSeq", Members=[a1, viewNode, a4], Sequential=
True, OutputLevel=INFO
119 EventLoop=slimeventloopmgr,
120 TopAlg=[createViewSeq],
121 MessageSvcType=
"InertMessageSvc",
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
The Application Manager class.