Skip to content

conf2toConfigurable: update the conversion of conf2 semantic helpers to be recursive

Fix an issue uncovered by !57465 (merged) and currently blocking that MR.

The ComponentAccumulator LegacySupport functions converting GaudiConfig2 components to old Configurables already take care of converting property value of type GaudiConfig2.semantics._ListHelper to python built-in list and GaudiConfig2.semantics._DictHelper to dict.

However, the CondInputLoader.Load property uses the OrderedSet<std::vector<std::string> > semantics which translate to a python list of lists in old config and to _ListHelper holding a list of other _ListHelper instances in conf2. This nested helper structure causes a crash seen in the pipeline !57465 (comment 6086303) because the current conversion only translates it to list of _ListHelpers rather than list of lists.

To fix this, ensure the convesion from conf2 "Helpers" is recursive.

Tagging CA config experts @tbold, @tadej, @wlampl. It's a mystery to me how we haven't run into this until now.

Merge request reports