Skip to content

Adjustment to TruthNavigationDecorator to avoid ExcStoreLocked in MT

James Catmore requested to merge jcatmore/athena:main_fix_childLinksLock_MT into main

ATLASG-2787

This is an attempt to fix a crash when PHYS is built in MT. In the current code an isAvailable check is made on a decorator called parent_decorator for a given particle/particle container, but no such check is done for the children counterpart. This leads to crashes of the following form when AthenaMT is used:

Derivation 13:42:18 PHYS_MCTruthNavigationDecoratorKernel                323     1   FATAL  Standard std::exception is caught
Derivation 13:42:18 PHYS_MCTruthNavigationDecoratorKernel                323     1   ERROR SG::ExcStoreLocked: Attempted to modify auxiliary data in a locked store: `::childLinks' (27)

By adding a second loop for doing the check also on the children, the crash is avoided. This will add a small performance penalty.

Merge request reports