Allen in Moore appears not thread safe
Running the following script:
from Moore import options
from RecoConf.hlt1_allen import allen_gaudi_config as hlt1_configuration
from Moore.config import run_allen
options.set_input_and_conds_from_testfiledb("expected_2024_min_bias_mdf")
options.evt_max = 50000
options.scheduler_legacy_mode = False
options.simulation = True
options.n_threads=10
with hlt1_configuration.bind(sequence="hlt1_pp_forward_then_matching_no_ut"):
run_allen(options)
immediately results in a segmentation fault related to the Allen monitoring:
#6 0x00007f584e0a154c in __pthread_kill_implementation () from /lib64/libc.so.6
#7 0x00007f584e054d06 in raise () from /lib64/libc.so.6
#8 0x00007f584e0287f3 in abort () from /lib64/libc.so.6
#9 0x00007f584e029130 in __libc_message.cold () from /lib64/libc.so.6
#10 0x00007f584e0ab617 in malloc_printerr () from /lib64/libc.so.6
#11 0x00007f584e0ad2cf in _int_free () from /lib64/libc.so.6
#12 0x00007f584e0af955 in free () from /lib64/libc.so.6
#13 0x00007f581fa6bf96 in std::__new_allocator<Allen::Monitoring::AccumulatorBase*>::deallocate (this=0x7f57dca052c8, __n=<optimized out>, __p=0x7f57dca05220) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/new_allocator.h:152
#14 std::allocator<Allen::Monitoring::AccumulatorBase*>::deallocate (__n=<optimized out>, __p=0x7f57dca05220, this=0x7f57dca052c8) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/allocator.h:210
#15 std::allocator_traits<std::allocator<Allen::Monitoring::AccumulatorBase*> >::deallocate (__n=<optimized out>, __p=0x7f57dca05220, __a=...) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/alloc_traits.h:516
#16 std::_Vector_base<Allen::Monitoring::AccumulatorBase*, std::allocator<Allen::Monitoring::AccumulatorBase*> >::_M_deallocate (__n=<optimized out>, __p=0x7f57dca05220, this=0x7f57dca052c8) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/stl_vector.h:387
#17 std::vector<Allen::Monitoring::AccumulatorBase*, std::allocator<Allen::Monitoring::AccumulatorBase*> >::_M_realloc_insert<Allen::Monitoring::AccumulatorBase* const&> (__position=..., this=0x7f57dca052c8) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/vector.tcc:519
#18 std::vector<Allen::Monitoring::AccumulatorBase*, std::allocator<Allen::Monitoring::AccumulatorBase*> >::push_back (__x=<synthetic pointer>: <optimized out>, this=0x7f57dca052c8) at /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/13.1.0-b3d18/x86_64-el9/include/c++/13.1.0/bits/stl_vector.h:1287
#19 Allen::Monitoring::AccumulatorManager::initAccumulators (this=this