Skip to content

AthConfigFlags: do not allow hashing of unlocked container

Frank Winklmeier requested to merge fwinkl/athena:configflags_lock into master

This MR contains several commits.

  • The first is purely "cosmetic" and cleans up the unit test definition for AthConfigFlags:
    • rename TestAthConfigFlags.py to lower-case to follow convention used in other files in this package
    • cleanup the unit test definition, i.e. use the auto-discovery for test functions to avoid accidentally not enabling new tests
  • The second commit fixes a potentially dangerous behavior of the AthConfigFlags hash feature (cc @tbold @ktopolni @rbielski):
    • Instead of returning None, which would be considered an equal hash, throw an exception when trying to hash an unlocked AthConfigFlags container. This avoids false accumulator caching in case someone forgets to lock the flag container. Mostly an issue for unit tests and mixed old/new-style job options.
    • Also simplify the hash calculation by only invoking hash once.

The other commits are necessary fixes to lock the ConfigFlags:

  • RecExCommon: Initialize the ConfigFlags once so they are available to other job options later. Apply any remaining changes and then lock them. This does not yet work for DPD making (ATLASRECTS-6636) and needs to be reviewed.
  • AthenaMonitoring: Move DataQualityInit_jobOptions earlier as they are modifying ConfigFlags.
Edited by Frank Winklmeier

Merge request reports