copytree3.C - toggle branch status crash

From: Venkatesh Kaushik <venkat.kaushik_at_cern.ch>
Date: Tue, 9 Aug 2011 06:54:11 -0700


Hi,
I have a modified $ROOTSYS/tutorials/tree/copytree3.C (attached) I also have added the stack trace below.

  1. Instead of TTree, I am using a TChain.
  2. My goal is to extract two entries.
  3. However, I have ~3800 branches in the tree. So I am using a work around, which is currently not working.
  4. To make the chain->GetEntry(i) go faster, I turn off all branches except the EventNumber (I have to extract two events). and when I reach the entries of interest, I toggle and turn on all branches before filling. I am getting a crash in Fill(). I cannot attach the input chain, since its large, but I would appreciate any help in resolving my problem.

Thanks in advance for your help.
Venkat

code below:

void copytree3() {

    TChain *ch = new TChain("physics");

    ch->Add("my.01.root");
    ch->Add("my.02.root");
    ch->Add("my.03.root");

    //Get old file, old tree and set top branch address     //TFile *oldfile = new TFile("$ROOTSYS/test/Event.root");     Int_t nentries = (Int_t)ch->GetEntries();     UInt_t event;
    ch->SetBranchAddress("EventNumber",&event);

    //Create a new file + a clone of old tree in new file     TFile *newfile = new TFile("small.root","recreate");     TTree *newtree = ch->CloneTree(0);

    ch->SetBranchStatus("*",0);
    ch->SetBranchStatus("EventNumber",1);

    for (Int_t i=0;i<nentries; i++) {

      ch->GetEntry(i);
      if (event == 73055901 || event == 73047449 ) {
        ch->SetBranchStatus("*",1);
        newtree->Fill();
      }

    }
    newtree->AutoSave();
    delete newfile;
}

stack trace:



There was a crash (#7 0xf7a1ff4d in SigHandler(ESignals) ()). This is the entire stack trace of all threads:

#0 0xffffe410 in __kernel_vsyscall ()
#1 0x00818833 in __waitpid_nocancel () from /lib/libc.so.6
#2 0x007bd19b in do_system () from /lib/libc.so.6
#3 0x008efead in system () from /lib/libpthread.so.0
#4 0xf7a1a8dd in TUnixSystem::Exec(char const*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#5 0xf7a20536 in TUnixSystem::StackTrace() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#6 0xf7a1fe37 in TUnixSystem::DispatchSignals(ESignals) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#7 0xf7a1ff4d in SigHandler(ESignals) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#8 0xf7a172a2 in sighandler(int) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#9 <signal handler called>
#10 0xf63e3a29 in ROOT::TCollectionProxyInfo::Type<std::vector<float,
std::allocator<float> > >::size(void*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libvectorDict.so
#11 0xf6960d2e in TGenCollectionStreamer::Streamer(TBuffer&) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#12 0xf693428d in TCollectionStreamer::Streamer(TBuffer&, void*, int,
TClass*)

     ()
    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#13 0xf6934d10 in TCollectionClassStreamer::Stream(TBuffer&, void*,
TClass const*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#14 0xf79ec058 in TClass::StreamerExternal(void*, TBuffer&, TClass
const*) const ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#15 0xf6932111 in TBufferFile::WriteFastArray(void*, TClass const*, int,
TMemberStreamer*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#16 0xf69fc6dd in int TStreamerInfo::WriteBufferAux<char**>(TBuffer&,
char** const&, int, int, int, int) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#17 0xf664eba1 in TBranchElement::FillLeaves(TBuffer&) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#18 0xf663c24d in TBranch::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#19 0xf664384b in TBranchElement::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#20 0xf668f728 in TTree::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#21 0xf6715d21 in G__G__Tree_113_0_49(G__value*, char const*, G__param*,
int)

     ()
    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#22 0xf72880e6 in Cint::G__ExceptionWrapper(int (*)(G__value*, char
const*, G__param*, int), G__value*, char*, G__param*, int) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#23 0xf729cb83 in G__exec_asm ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#24 0xf7379b8b in G__exec_loop(char const*, char*,
std::list<G__FastAllocString, std::allocator<G__FastAllocString> > const&) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#25 0xf737494a in G__exec_statement ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#26 0xf731cac7 in G__interpret_func ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#27 0xf7309ba3 in G__getfunction ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#28 0xf72db218 in G__getitem ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#29 0xf72df794 in G__getexpr ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#30 0xf72edd85 in G__calc_internal ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#31 0xf73828ca in G__process_cmd ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCint.so
#32 0xf79da83c in TCint::ProcessLine(char const*,
TInterpreter::EErrorCode*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#33 0xf79d81ef in TCint::ProcessLineSynch(char const*,
TInterpreter::EErrorCode*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#34 0xf7924ce7 in TApplication::ExecuteFile(char const*, int*, bool) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#35 0xf7924fcc in TApplication::ProcessFile(char const*, int*, bool) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#36 0xf7922676 in TApplication::ProcessLine(char const*, bool, int*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#37 0xf701de61 in TRint::Run(bool) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRint.so
#38 0x08048db5 in main ()


The lines below might hint at the cause of the crash. If they do not help you then please submit a bug 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.



#10 0xf63e3a29 in ROOT::TCollectionProxyInfo::Type<std::vector<float,
std::allocator<float> > >::size(void*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libvectorDict.so
#11 0xf6960d2e in TGenCollectionStreamer::Streamer(TBuffer&) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#12 0xf693428d in TCollectionStreamer::Streamer(TBuffer&, void*, int,
TClass*)

     ()
    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#13 0xf6934d10 in TCollectionClassStreamer::Stream(TBuffer&, void*,
TClass const*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#14 0xf79ec058 in TClass::StreamerExternal(void*, TBuffer&, TClass
const*) const ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libCore.so
#15 0xf6932111 in TBufferFile::WriteFastArray(void*, TClass const*, int,
TMemberStreamer*) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#16 0xf69fc6dd in int TStreamerInfo::WriteBufferAux<char**>(TBuffer&,
char** const&, int, int, int, int) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libRIO.so
#17 0xf664eba1 in TBranchElement::FillLeaves(TBuffer&) ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#18 0xf663c24d in TBranch::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#19 0xf664384b in TBranchElement::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so
#20 0xf668f728 in TTree::Fill() ()

    from
/export/share/atlas/ATLASLocalRootBase/x86_64/root/5.28.00c-slc5-gcc4.3-i686/lib/libTree.so


-- 
=========================================================
Venkatesh Kaushik
Research Associate

University of Arizona              ATLAS Experiment_at_CERN
Office: PAS 334                    40-1-C11
Tucson, Arizona                    Genève, Switzerland
Tel: +1 520 626 7042               +41 22 76 79137
venkat_at_physics.arizona.edu         venkat.kaushik_at_cern.ch
         http://atlas.physics.arizona.edu/~venkat
=========================================================
Received on Tue Aug 09 2011 - 15:54:26 CEST

This archive was generated by hypermail 2.2.0 : Tue Aug 09 2011 - 23:50:07 CEST