UTHitManager crashes with event with one UT hit (+debug version logging failled)
I was generating events with the Gauss tracking cut off just after the VP for some alignment tests. This means the rest of the detector has noise only, I was getting a crash in event 2 with one UT hit in Brunel (event 1 had zero UT hits and run fine):
The Brunel/v61r2 optimised version gave:
BrunelInit INFO Evt 2, Run 12345, Nr. in job = 2
*** Break *** segmentation violation
...
#5 0x00007fab6ffff508 in LHCb::Pr::UT::StoreHit<UT::HitHandler>::operator()(EventContext const&, LHCb::RawEvent const&, LHCb::Pr::UT::UTGeomCache const&) const () from /cvmfs/lhcb.cern.ch/lib/lhcb/REC/REC_v31r2/InstallArea/x86_64+avx2+fma-centos7-gcc9-opt/lib/libPrAlgorithms.so
#6 0x00007fab700077e0 in Gaudi::Functional::details::Transformer<UT::HitHandler (EventContext const&, LHCb::RawEvent const&, LHCb::Pr::UT::UTGeomCache const&), Gaudi::Functional::Traits::use_<LHCb::DetDesc::useConditionHandleFor<LHCb::Pr::UT::UTGeomCache>, Gaudi::Functional::Traits::BaseClass_t<LHCb::DetDesc::ConditionAccessorHolder<FixTESPath<Gaudi::Algorithm> > > >, false>::execute(EventContext const&) const () from /cvmfs/lhcb.cern.ch/lib/lhcb/REC/REC_v31r2/InstallArea/x86_64+avx2+fma-centos7-gcc9-opt/lib/libPrAlgorithms.so
#7 0x00007fab7cf083a6 in Gaudi::Algorithm::sysExecute(EventContext const&) () from /cvmfs/lhcb.cern.ch/lib/lhcb/GAUDI/GAUDI_v34r1/InstallArea/x86_64+avx2+fma-centos7-gcc9-opt/lib/libGaudiKernel.so
...
The debug version (x86_64-centos7-gcc9-dbg) gave:
Traceback (most recent call last):
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_97a/Python/2.7.16/x86_64-centos7-gcc9-dbg/lib/python2.7/logging/__init__.py", line 892, in emit
self.flush()
File "/cvmfs/lhcb.cern.ch/lib/lcg/releases/LCG_97a/Python/2.7.16/x86_64-centos7-gcc9-dbg/lib/python2.7/logging/__init__.py", line 852, in flush
self.stream.flush()
IOError: [Errno 32] Broken pipe
Logged from file Configuration.py, line 1087
... one for each python file opened by Gaudi and no other output, so the logging fails if the job crashes
...
GaudiTool WARNING Create/Destroy (mis)balance 'VisPrimVertTool/ToolSvc.VisPrimVertTool' Counts = 1
Warning in <TClass::Init>: no dictionary for class SmartRefVectorImpl::SmartRefVectorPythonizer is available
python: /workspace/build/REC/REC_v31r2/Pr/PrKernel/PrKernel/UTHitHandler.h:111: UT::Hit& UT::HitHandler::emplace_back(const DeUTSector&, unsigned int, unsigned int, double, LHCb::UTChannelID, unsigned int, bool): Assertion `indices.first == indices.second' failed.
You can get this crash by running on the files in /afs/cern.ch/user/d/dhcroft/public/UTHitManagerCrash
There is the xdigi input file and a Brunel job script in that directory:
lb-run Brunel/v61r2 gaudirun.py Brunel-CrashOptions.py