Dear ROOT experts,
I’m experimenting with reading in the ATLAS xAOD data format using RDataFrame, in order to get masters’ students started quickly with their analysis. I have found this to be a highly efficient way of enabling them to explore the data without needing detailed knowledge of the ATLAS software. Not all containers can be read without ATLAS libraries, but many (all of the “AuxDyn” branches) can be.
I have hit a snag with one particular file, which seems to be OK from the ATLAS side but which is triggering a segfault in the GetBranchNames() method. Note that I’m not trying to access the contents of any particular branch - just get the names and types of each branch. Also I’ve used the same code with other similar input without this problem. I attach some code that can reproduce the crash, and a CERNBox link to the input file, along with the stack trace.
ROOT Version: 6.20.06-x86_64-centos7-gcc8-opt
Platform: CentOS7 (same crash also from MacOS via Conda)
Compiler: gcc8-opt
Thanks for any help, and thanks for the very nice development with RDataFrame!
James Catmore
Input file: CERNBox
Code:
test.py (1.3 KB)
Stack trace:
===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0 0x00007f2a281e146c in waitpid () from /lib64/libc.so.6
#1 0x00007f2a2815ef62 in do_system () from /lib64/libc.so.6
#2 0x00007f2a25c87663 in TUnixSystem::StackTrace() () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libCore.so
#3 0x00007f2a25c89eb4 in TUnixSystem::DispatchSignals(ESignals) () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libCore.so
#4 <signal handler called>
#5 0x00007f2a25c23b5a in TClass::GetCollectionProxy() const () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libCore.so
#6 0x00007f2a270804f8 in TBranchElement::SetReadLeavesPtr() () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#7 0x00007f2a270812a0 in TBranchElement::SetMakeClass(bool) () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#8 0x00007f2a270cdb56 in TTree::SetMakeClass(int) [clone .localalias.305] () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#9 0x00007f2a2709993c in TChain::LoadTree(long long) () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#10 0x00007f2a2709708a in TChain::GetListOfBranches() () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#11 0x00007f2a0fb3b9a0 in GetBranchNamesImpl(TTree&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::set<TTree*, std::less<TTree*>, std::allocator<TTree*> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool) [clone .localalias.509] () from /cvmfs/sft.cern.ch/lcg/releases/ROOT/v6.20.06-3f7fd/x86_64-centos7-gcc8-opt/lib/libROOTDataFrame.so
#12 0x00007f2a0fb3cc3b in ROOT::Internal::RDF::GetBranchNames[abi:cxx11](TTree&, bool) () from /cvmfs/sft.cern.ch/lcg/releases/ROOT/v6.20.06-3f7fd/x86_64-centos7-gcc8-opt/lib/libROOTDataFrame.so
#13 0x00007f2a2924a129 in ?? ()
#14 0x0000000000000000 in ?? ()
===========================================================
The lines below might hint at the cause of the crash.
You may get help by asking at the ROOT forum http://root.cern.ch/forum
Only if you are really convinced it is a bug in ROOT then please submit a
report at http://root.cern.ch/bugs Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5 0x00007f2a25c23b5a in TClass::GetCollectionProxy() const () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libCore.so
#6 0x00007f2a270804f8 in TBranchElement::SetReadLeavesPtr() () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#7 0x00007f2a270812a0 in TBranchElement::SetMakeClass(bool) () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#8 0x00007f2a270cdb56 in TTree::SetMakeClass(int) [clone .localalias.305] () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#9 0x00007f2a2709993c in TChain::LoadTree(long long) () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#10 0x00007f2a2709708a in TChain::GetListOfBranches() () from /cvmfs/sft.cern.ch/lcg/releases/LCG_97a/ROOT/v6.20.06/x86_64-centos7-gcc8-opt/lib/libTree.so
#11 0x00007f2a0fb3b9a0 in GetBranchNamesImpl(TTree&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, std::set<TTree*, std::less<TTree*>, std::allocator<TTree*> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool) [clone .localalias.509] () from /cvmfs/sft.cern.ch/lcg/releases/ROOT/v6.20.06-3f7fd/x86_64-centos7-gcc8-opt/lib/libROOTDataFrame.so
#12 0x00007f2a0fb3cc3b in ROOT::Internal::RDF::GetBranchNames[abi:cxx11](TTree&, bool) () from /cvmfs/sft.cern.ch/lcg/releases/ROOT/v6.20.06-3f7fd/x86_64-centos7-gcc8-opt/lib/libROOTDataFrame.so
#13 0x00007f2a2924a129 in ?? ()
#14 0x0000000000000000 in ?? ()
===========================================================```