Skip to content

Lock output of RecoFragmentsPool [ATR-23044]

Teng Jian Khoo requested to merge khoo/athena:master-RFP-lock into master

In the HLT configuration we cache sequences that have been generated to prevent adding duplicate algs to existing sequences.

To prevent signature cross-talk this change locks configurables returned by RecoFragmentsPool.retrieve upon creation. The recursion is limited -- it will do:

  • Configurable instances
  • Nodes
  • Configurable contents in tuples, iterating through the nesting but it will not lock all children of configured objects, because unfortunately the Run 2 Configurable generation considers the recreation of an identical instance of a preexisting Configurable to be a modification.

It was necessary to extend the lock-awareness to Configurable.__iadd__ so that one could not do += to a locked sequence.

I had to fix the following violation, and such operations will be blocked in future, but this was already described in the signature developers' checklist. It is crucial that these checks be followed for all work.

FYI @bwynne, @tbold, @fwinkl

Edited by Teng Jian Khoo

Merge request reports