4 A deliberately badly-configured job to demonstrate a crash in 7 The ViewTester is an algorithm specifically designed to create sub-event 8 contexts, pass them to the scheduler, and report on the current context. 10 The re-use of filter_alg causes the CF to "skip over" filter_alg2 11 This would then cause sub-events to be scheduled, but with the 12 "ShortCircuit" property of the hltStep node set True, the event can 13 be deleted before the sub-events have completed, causing the crash. 15 There is now protection in AvalancheScheduler against this crash, 16 but note that re-using algs in this way is still expected to cause 17 surprising CF behaviour. 20 from Configurables
import (HiveWhiteBoard, HiveSlimEventLoopMgr,
21 AvalancheSchedulerSvc, AlgResourcePool,
22 CPUCruncher, GaudiSequencer, Test__ViewTester)
46 SchedulerName=
"AvalancheSchedulerSvc", OutputLevel=INFO)
66 filter_alg.InvertDecision =
False 67 filter_alg.avgRuntime = 0.0
70 filter_alg2.InvertDecision =
True 71 filter_alg2.avgRuntime = 0.0
73 view_make_alg = Test__ViewTester(
"view_make_alg")
74 view_make_alg.baseViewName =
'view' 75 view_make_alg.viewNumber = viewsPerEvt
76 view_make_alg.viewNodeName =
'view_test_node' 79 view_test_alg.InvertDecision =
False 80 view_test_alg.avgRuntime = 1.0
82 for algo
in [filter_alg, filter_alg2, view_make_alg, view_test_alg]:
83 algo.Cardinality = cardinality
84 algo.OutputLevel = INFO
87 Members=[view_test_alg],
93 view_make_alg, view_test_node],
98 Members=[filter_alg, filter_alg2, view_make_node],
110 EventLoop=slimeventloopmgr,
112 MessageSvcType=
"InertMessageSvc")
A class that implements a search for prime numbers.
Sequencer for executing several algorithms, stopping when one is faulty.
The AlgResourcePool is a concrete implementation of the IAlgResourcePool interface.
The Application Manager class.