From 2398ead89a7e5270c01d5157bb9cdcf6cdc65187 Mon Sep 17 00:00:00 2001 From: Ben Wynne <bwynne@cern.ch> Date: Mon, 10 Aug 2020 17:48:46 +0200 Subject: [PATCH] Added an error message if there's an empty, ModeOR sequence in the HLT --- .../TriggerMenuMT/python/HLTMenuConfig/Menu/CFValidation.py | 5 +++++ .../TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/CFValidation.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/CFValidation.py index ded5ba44828..e280093f5ea 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/CFValidation.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/CFValidation.py @@ -20,6 +20,11 @@ def findViewAlgs( inputNodes, viewNodes ): # If node is a sequence, explore further if isSequence( node ): + # Empty nodes can cause Gaudi scheduler bug https://gitlab.cern.ch/gaudi/Gaudi/-/issues/135 + if len( node.getChildren() ) == 0 and node.ModeOR: + + raise RuntimeError( "Empty CF sequence in OR mode can cause Gaudi scheduler bug. Please remove " + node.getName() ) + # Identify view CF nodes if node.getName() in viewNodes.keys(): diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py index 5b5dbf7b3b5..4721965a9c2 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Test/ViewCFTest.py @@ -20,8 +20,12 @@ class ViewCFTest( unittest.TestCase ): vdv1 = CfgMgr.AthViews__ViewDataVerifier("vdv1") vdv2 = CfgMgr.AthViews__ViewDataVerifier("vdv2") - # Add an algorithm to a sequence + # Test error for empty sequence topSequence += seqOR( "makeViewSequence" ) + with self.assertRaisesRegex( RuntimeError, "Please remove makeViewSequence" ): + findViewAlgs( topSequence.getChildren(), {} ) + + # Add an algorithm to the sequence topSequence.makeViewSequence += evca1 #topSequence.makeViewSequence += evca2 -- GitLab