lcfiplus / LCFIPlus

Flavor tagging code for ILC detectors
https://confluence.slac.stanford.edu/display/ilc/LCFIPlus
GNU General Public License v3.0
6 stars 19 forks source link

Debug mode crashes LCFIPlus #7

Open jstrube opened 7 years ago

jstrube commented 7 years ago

When compiling with "-g", LCFIPlus crashes with the following backtrace.

#6  0x00007ffff5b9829d in operator new(unsigned long) ()
   from /cvmfs/sft.cern.ch/lcg/external/gcc/4.8.1/x86_64-slc6-gcc48-opt/lib64/libstdc++.so.6
#7  0x00007fffeeb98cc4 in std::vector<EVENT::Cluster*, std::allocator<EVENT::Cluster*> >::operator=(std::vector<EVENT::Cluster*, std::allocator<EVENT::Cluster*> > const&) ()
    at /cvmfs/sft.cern.ch/lcg/external/gcc/4.8.1/x86_64-slc6-gcc48-opt/include/c++/4.8.1/ext/new_allocator.h:104
#8  0x00007fffeeb98440 in lcfiplus::LCIOStorer::SetEvent(EVENT::LCEvent*) ()
    at /home/ilc/suehara/LCFIPlus/./include/lcfiplus.h:630
#9  0x00007fffeeb49ed8 in LcfiplusProcessor::processEvent(EVENT::LCEvent*) ()
    at /home/ilc/suehara/LCFIPlus/src/LcfiplusProcessor.cc:225
#10 0x00007ffff61113ce in marlin::ProcessorMgr::processEvent(EVENT::LCEvent*) ()
    at /sw/ilc/ilcsoft/gcc481/v01-17-10/Marlin/v01-09/source/src/ProcessorMgr.cc:475
#11 0x00007ffff7b831ca in SIO::SIOReader::readStream(int) ()
    at /sw/ilc/ilcsoft/gcc481/v01-17-10/lcio/v02-07-02/src/cpp/src/SIO/SIOReader.cc:722
#12 0x00007ffff7b82f15 in SIO::SIOReader::readStream() ()
    at /sw/ilc/ilcsoft/gcc481/v01-17-10/lcio/v02-07-02/src/cpp/src/SIO/SIOReader.cc:650
#13 0x0000000000417105 in main () at /sw/ilc/ilcsoft/gcc481/v01-17-10/Marlin/v01-09/source/src/Marlin.cc:498

Different inputs might lead to a crash in https://github.com/lcfiplus/LCFIPlus/blob/master/src/JetFinder.cc#L505

To reproduce at KEKCC:

contents=($(ls /gpfs/group/ilc/suehara/reco/dbd/train-lcfiplus/qq91new/*.slcio))
export LSB_JOBINDEX=2
filename="${contents[5*(${LSB_JOBINDEX} - 1)]} ${contents[5*(${LSB_JOBINDEX} - 1)+1]} ${contents[5*(${LSB_JOBINDEX} - 1)+2]} ${contents[5*(${LSB_JOBINDEX} - 1)+3]} ${contents[5*(${LSB_JOBINDEX} - 1)+4]} "
MARLIN_DLL=/home/ilc/suehara/LCFIPlus/lib/libLCFIPlus.so:${MARLIN_DLL}  Marlin makentuple.xml --global.LCIOInputFiles="${filename}"

where makentuple.xml is the standard one from the ILDConfig package. For valgrind, use

export PATH=/cvmfs/sft.cern.ch/lcg/external/valgrind/3.8.0/x86_64-slc6-gcc48-opt/bin/:$PATH
MARLIN_DLL=/home/ilc/suehara/LCFIPlus/lib/libLCFIPlus.so:${MARLIN_DLL} valgrind --leak-check=full Marlin makentuple.xml --global.LCIOInputFiles="${filename}"