Skip to content

Segfault in EventView bookkeeping

ATLAS HLT tests with views are intermittently failing, and the same stack trace has been produced by both myself and Charles:

..snip..

    at /cvmfs/sft.cern.ch/lcg/releases/gcc/6.2.0-2bc78/x86_64-slc6-gcc62-opt/include/c++/6.2.0/bits/unordered_map.h:851

#4  EventSlot::addSubSlot (nodeName=..., viewContext=..., this=0x25edc880) at /build2/atnight/localbuilds/nightlies/master/build/src/GAUDI/GaudiHive/src/EventSlot.h:57

#5  AvalancheSchedulerSvc::<lambda()>::operator() (__closure=<optimized out>) at /build2/atnight/localbuilds/nightlies/master/build/src/GAUDI/GaudiHive/src/AvalancheSchedulerSvc.cpp:1143

#6  std::_Function_handler<StatusCode(), AvalancheSchedulerSvc::scheduleEventView(const EventContext*, const string&, std::unique_ptr<EventContext>)::<lambda()> >::_M_invoke(const std::_Any_data &) (
    __functor=...) at /cvmfs/sft.cern.ch/lcg/releases/gcc/6.2.0-2bc78/x86_64-slc6-gcc62-opt/include/c++/6.2.0/functional:1726

#7  0x00007f57c19c397c in std::function<StatusCode ()>::operator()() const (this=this@entry=0x7f5799432d80)
    at /cvmfs/sft.cern.ch/lcg/releases/gcc/6.2.0-2bc78/x86_64-slc6-gcc62-opt/include/c++/6.2.0/functional:2136

#8  0x00007f57c19c8f30 in AvalancheSchedulerSvc::activate (this=0x276ea200) at /build2/atnight/localbuilds/nightlies/master/build/src/GAUDI/GaudiHive/src/AvalancheSchedulerSvc.cpp:389

#9  0x00007f57c19c9259 in AvalancheSchedulerSvc::<lambda()>::operator() (__closure=<optimized out>)
    at /build2/atnight/localbuilds/nightlies/master/build/src/GAUDI/GaudiHive/src/AvalancheSchedulerSvc.cpp:81

..snip..

The line in question (EventSlot.h:57) is auto search = subSlotsByNode.find( nodeName ); This suggests that the subSlotsByNode map is still being modified and read concurrently.

I have yet to demonstrate this in a simpler test than the ATLAS HLT menu tests.

Regards, Ben

Edited by Benjamin Michael Wynne
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information