Error got from fChain->GetTree()->GetEntry(entry)

Hi,

I am writing a TSelector derived class. My codes is compiled all right.
But I ran the chain->Process(“myselector.C”, “”,10), I always got errors. I found out the error occurred in Process(): fChain->GetTree()->GetEntry(entry). I tested if fChain->GetTree() can get tree, it can. SO the problem is happen the GetEntry(entry).
Do you know what is the problem and how I can debug this problem?

thanks,

The error is as follows:
*** Break *** segmentation violation
(no debugging symbols found)
Using host libthread_db library “/lib64/tls/libthread_db.so.1”.
Attaching to program: /proc/13908/exe, process 13908
[Thread debugging using libthread_db enabled]
[New Thread 4142274784 (LWP 13908)]
[New Thread 4099894176 (LWP 13929)]
[New Thread 4110384032 (LWP 13928)]
[New Thread 4122454944 (LWP 13927)]

0xffffe410 in __kernel_vsyscall ()
Thread 4 (Thread 4122454944 (LWP 13927)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x003ac826 in __nanosleep_nocancel () from /lib/tls/libc.so.6
#2 0x003ac62c in sleep () from /lib/tls/libc.so.6
#3 0xf5bc24be in GarbageCollectorThread (arg=0x8e68750, thr=0xfffffdfc) at XrdClientConnMgr.cc:71
#4 0xf5bd58e6 in XrdClientThreadDispatcher (arg=0x838b414) at XrdClientThread.cc:32
#5 0xf5c41057 in XrdSysThread_Xeq () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libNetx.so
#6 0xf6eb83cc in start_thread () from /lib/tls/libpthread.so.0
#7 0x003ecb4e in clone () from /lib/tls/libc.so.6

Thread 3 (Thread 4110384032 (LWP 13928)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x003e2d04 in poll () from /lib/tls/libc.so.6
#2 0xf5ba4d16 in XrdClientSock::RecvRaw (this=0x8e6b408, buffer=0x8e6ba04, length=8, substreamid=-1, usedsubstreamid=0xf4ff6e7c) at XrdClientSock.cc:126
#3 0xf5bcc266 in XrdClientPhyConnection::ReadRaw (this=0x8e6ade0, buf=0x8e6ba04, len=-4, substreamid=-4, usedsubstreamid=0xfffffffc) at XrdClientPhyConnection.cc:360
#4 0xf5bc79fa in XrdClientMessage::ReadRaw (this=0x8e6b9e0, phy=0x8e6ade0) at XrdClientMessage.cc:150
#5 0xf5bcb348 in XrdClientPhyConnection::BuildMessage (this=0x8e6ade0, IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:441
#6 0xf5bd0d1f in SocketReaderThread (arg=0x8e6ade0, thr=0xfffffffc) at XrdClientPhyConnection.cc:59
#7 0xf5bd58e6 in XrdClientThreadDispatcher (arg=0x8e695ec) at XrdClientThread.cc:32
#8 0xf5c41057 in XrdSysThread_Xeq () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libNetx.so
#9 0xf6eb83cc in start_thread () from /lib/tls/libpthread.so.0
#10 0x003ecb4e in clone () from /lib/tls/libc.so.6

Thread 2 (Thread 4099894176 (LWP 13929)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x003e2d04 in poll () from /lib/tls/libc.so.6
#2 0xf5ba4d16 in XrdClientSock::RecvRaw (this=0x8e6bb50, buffer=0x8e70f9c, length=8, substreamid=-1, usedsubstreamid=0xf45f5e7c) at XrdClientSock.cc:126
#3 0xf5bcc266 in XrdClientPhyConnection::ReadRaw (this=0x8e6c120, buf=0x8e70f9c, len=-4, substreamid=-4, usedsubstreamid=0xfffffffc) at XrdClientPhyConnection.cc:360
#4 0xf5bc79fa in XrdClientMessage::ReadRaw (this=0x8e70f78, phy=0x8e6c120) at XrdClientMessage.cc:150
#5 0xf5bcb348 in XrdClientPhyConnection::BuildMessage (this=0x8e6c120, IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:441
#6 0xf5bd0d1f in SocketReaderThread (arg=0x8e6c120, thr=0xfffffffc) at XrdClientPhyConnection.cc:59
#7 0xf5bd58e6 in XrdClientThreadDispatcher (arg=0x8e6948c) at XrdClientThread.cc:32
#8 0xf5c41057 in XrdSysThread_Xeq () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libNetx.so
#9 0xf6eb83cc in start_thread () from /lib/tls/libpthread.so.0
#10 0x003ecb4e in clone () from /lib/tls/libc.so.6

Thread 1 (Thread 4142274784 (LWP 13908)):
#0 0xffffe410 in __kernel_vsyscall ()
Thread 1 (Thread 4142274784 (LWP 13908)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x003ac11b in __waitpid_nocancel () from /lib/tls/libc.so.6
#2 0x003557b9 in do_system () from /lib/tls/libc.so.6
#3 0x00355b31 in system () from /lib/tls/libc.so.6
#4 0xf6ebe98d in system () from /lib/tls/libpthread.so.0
#5 0xf7af536d in TUnixSystem::Exec () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#6 0xf7afbc65 in TUnixSystem::StackTrace () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#7 0xf7af7f49 in TUnixSystem::DispatchSignals () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#8 0xf7af7ff3 in SigHandler () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#9 0xf7af70de in sighandler () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#10
#11 0xf6778877 in TBufferFile::ReadInt () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libRIO.so
#12 0xf64baaa8 in TBranchElement::ReadLeaves () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#13 0xf64b4666 in TBranch::GetEntry () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#14 0xf64b6e60 in TBranchElement::GetEntry () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#15 0xf64b6d0b in TBranchElement::GetEntry () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#16 0xf650644c in TTree::GetEntry () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#17 0xf6531f21 in G__G__Tree_109_0_66 () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#18 0xf71fc286 in Cint::G__ExceptionWrapper () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#19 0xf7214301 in G__exec_asm () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#20 0xf7216ae4 in G__exec_bytecode () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#21 0xf729694f in G__interpret_func () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#22 0xf72346cd in Cint::G__CallFunc::ExecInterpretedFunc () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#23 0xf72348dd in Cint::G__CallFunc::Execute () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#24 0xf7ae4bab in TCint::CallFunc_ExecInt () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#25 0xf64f42e4 in TSelectorCint::Process () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#26 0xe9d288ed in TTreePlayer::Process () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTreePlayer.so
#27 0xe9d282a0 in TTreePlayer::Process () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTreePlayer.so
#28 0xf65091cb in TTree::Process () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#29 0xf64d48da in TChain::Process () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#30 0xf6535303 in G__G__Tree_109_0_135 () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libTree.so
#31 0xf71fc286 in Cint::G__ExceptionWrapper () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#32 0xf72b875f in G__execute_call () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#33 0xf72b8ab4 in G__call_cppfunc () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#34 0xf729657b in G__interpret_func () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#35 0xf7282658 in G__getfunction () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#36 0xf7391bb9 in G__getstructmem () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#37 0xf7388462 in G__getvariable () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#38 0xf7251dfb in G__getitem () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#39 0xf72576e0 in G__getexpr () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#40 0xf72f5c8e in G__exec_statement () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#41 0xf7298457 in G__interpret_func () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#42 0xf7282c16 in G__getfunction () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#43 0xf7252567 in G__getitem () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#44 0xf72576e0 in G__getexpr () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#45 0xf7266727 in G__calc_internal () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#46 0xf73014d8 in G__process_cmd () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCint.so
#47 0xf7addc75 in TCint::ProcessLine () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#48 0xf7adde3d in TCint::ProcessLineSynch () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#49 0xf7a01d4a in TApplication::ExecuteFile () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#50 0xf7a020a4 in TApplication::ProcessFile () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#51 0xf79ffea6 in TApplication::ProcessLine () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#52 0xf6fe547c in TRint::HandleTermInput () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libRint.so
#53 0xf6fe3675 in TTermInputHandler::Notify () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libRint.so
#54 0xf6fe5f24 in TTermInputHandler::ReadNotify () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libRint.so
#55 0xf7af3a09 in TUnixSystem::CheckDescriptors () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#56 0xf7af86a4 in TUnixSystem::DispatchOneEvent () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#57 0xf7a623be in TSystem::InnerLoop () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#58 0xf7a621c9 in TSystem::Run () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#59 0xf7a000f7 in TApplication::Run () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libCore.so
#60 0xf6fe4019 in TRint::Run () from /usr/rmt_share/p2/purdueCMS/slc4_ia32_gcc345/lcg/root/5.22.00a-cms5/lib/libRint.so
#61 0x08048d81 in main ()
test1Selector.h (8.66 KB)
test1Selector.C (3.97 KB)
run_test1Selector.C (1.93 KB)

Hi,

Does you selector work properly when run locally (without proof)?

Philippe

This error occurred running at local. I didn’t setproof yet.

Haiying

Hi,

since I was getting a similar error msg, maybe the problems are related.

Have you created the TSelector manually or by using TChain::MakeSelector()?

I used the automatic way and got every time a segmenation fault when executing
fChain->GetEntry(entry) or fChain->GetTree()->GetEntry(entry)
if I left out some SetBranchAddress statements in TSelector::Init().
So I think the error occurs, if some branch addresses are not set. Worth trying.

When I’m including all statements which are created by MakeSelector and disable unnecessary by SetBranchStatus("*", 0) (of course enable interesting ones after it)
it works.

Luke

[quote=“Luke_K”]Hi,

since I was getting a similar error msg, maybe the problems are related.

Have you created the TSelector manually or by using TChain::MakeSelector()?

I used the automatic way and got every time a segmenation fault when executing
fChain->GetEntry(entry) or fChain->GetTree()->GetEntry(entry)
if I left out some SetBranchAddress statements in TSelector::Init().
So I think the error occurs, if some branch addresses are not set. Worth trying.

When I’m including all statements which are created by MakeSelector and disable unnecessary by SetBranchStatus("*", 0) (of course enable interesting ones after it)
it works.

Luke[/quote]

Do you SetBranchStatus immediately after SetBranchAddress statement?
Also, when I run MakeSelector(), there is still some variable declaration statement that root cannot recognize because I didn’t link all my user libraries, so root comments them out. will these cause problem too?

thanks,

Thanks a lot, Luke. Your answer solved my problem. Do you know the reason?

Haiying

[quote=“hyxu”]
Do you SetBranchStatus immediately after SetBranchAddress statement?
Also, when I run MakeSelector(), there is still some variable declaration statement that root cannot recognize because I didn’t link all my user libraries, so root comments them out. will these cause problem too?

thanks,[/quote]

I set SetBranchStatus before SetBranchAddress. However, I haven’t tried other way around.

First idea was that the branches might be connected, like it is the case in the object format, but I was told this is not the case. I tried to comment the SetAddress lines step by step
which brought me, to what I think is the reason:

For my test I wanted to get the p_t of the stored muons, which is the branch
"patMuons_selectedLayer1Muons__TEST.obj.pt_" (the only one which is SetStatus(1))
To access this branch without a segmentation fault I needed to set the address of every
parent branch, which is in my case only:
“patMuons_selectedLayer1Muons__TEST.obj”

You could have a look on which branches you need, disable all unnecessary and set
addresses of the branches of interest and their parents.
This will speed up your analysis and prevent segfaults.

Cheers
Luke