Working TSelector, but PROOF crashes

Hi all,

I have a TSelector-derived class for my analysis code that runs fine. Now I want to use PROOF to speed things up. According to this page, that should be pretty straightforward. My code to run the TSelector is

void Runner::Process(TSelector* selector, bool multiprocessing /*true*/)
{
  std::cout << "number of events:\t" << chain.GetEntries() << std::endl;
  TProof* proof;
  if (multiprocessing) {
    proof = TProof::Open("");
    chain.SetProof();
  }
  chain.Process(selector);
}

chain is a TChain containing some .root files. With multiprocessing=false, it all runs flawlessly. When I set it to true, I recieve this output:

Warning in <TClass::Init>: no dictionary for class ROOT::TIOFeatures is available
number of events:	100000
 +++ Starting PROOF-Lite with 12 workers +++
Opening connections to workers: OK (12 workers)                 
Setting up worker servers: OK (12 workers)                 
PROOF set to parallel mode (12 workers)
 
Info in <TProofLite::SetQueryRunning>: starting query: 1
Info in <TProofQueryResult::SetRunning>: nwrks: 12

 *** Break *** segmentation violation



===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x0000003e18aac89e in waitpid () from /lib64/libc.so.6
#1  0x0000003e18a3e4e9 in do_system () from /lib64/libc.so.6
#2  0x00007fbcc5b85be8 in TUnixSystem::StackTrace() () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCore.so
#3  0x00007fbcc5b8809c in TUnixSystem::DispatchSignals(ESignals) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCore.so
#4  <signal handler called>
#5  0x00007fbcb511cbad in TGCompositeFrame::TGCompositeFrame(TGWindow const*, unsigned int, unsigned int, unsigned int, unsigned long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#6  0x00007fbcb511d0ad in TGMainFrame::TGMainFrame(TGWindow const*, unsigned int, unsigned int, unsigned int) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#7  0x00007fbcb511de30 in TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned int, unsigned int, unsigned int) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#8  0x00007fbcb553fb6d in TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libSessionViewer.so
#9  0x00007fbcbe655069 in ?? ()
#10 0x00007ffcd7b6ec08 in ?? ()
#11 0x0000000001296bc0 in ?? ()
#12 0x0000000000000005 in ?? ()
#13 0x00000000046ca830 in ?? ()
#14 0x00007ffcd7b6ebd0 in ?? ()
#15 0x00007fbcbea6f40c in TClingCallFunc::exec(void*, void*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#16 0x00007fbcbea70817 in TClingCallFunc::exec_with_valref_return(void*, cling::Value*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#17 0x00007fbcbea7886b in TClingCallFunc::ExecInt(void*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#18 0x00007fbcc5b5a889 in TMethodCall::Execute(void*, long&) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCore.so
#19 0x00007fbcc26716d1 in TProofLite::Process(TDSet*, char const*, char const*, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libProof.so
#20 0x00007fbcc2624e84 in TProof::Process(TDSet*, TSelector*, char const*, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libProof.so
#21 0x000000000041a3d6 in Runner::Process(TSelector*, bool) ()
#22 0x000000000041a0d9 in main ()
===========================================================


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  0x00007fbcb511cbad in TGCompositeFrame::TGCompositeFrame(TGWindow const*, unsigned int, unsigned int, unsigned int, unsigned long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#6  0x00007fbcb511d0ad in TGMainFrame::TGMainFrame(TGWindow const*, unsigned int, unsigned int, unsigned int) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#7  0x00007fbcb511de30 in TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned int, unsigned int, unsigned int) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libGui.so
#8  0x00007fbcb553fb6d in TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libSessionViewer.so
#9  0x00007fbcbe655069 in ?? ()
#10 0x00007ffcd7b6ec08 in ?? ()
#11 0x0000000001296bc0 in ?? ()
#12 0x0000000000000005 in ?? ()
#13 0x00000000046ca830 in ?? ()
#14 0x00007ffcd7b6ebd0 in ?? ()
#15 0x00007fbcbea6f40c in TClingCallFunc::exec(void*, void*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#16 0x00007fbcbea70817 in TClingCallFunc::exec_with_valref_return(void*, cling::Value*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#17 0x00007fbcbea7886b in TClingCallFunc::ExecInt(void*) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCling.so
#18 0x00007fbcc5b5a889 in TMethodCall::Execute(void*, long&) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libCore.so
#19 0x00007fbcc26716d1 in TProofLite::Process(TDSet*, char const*, char const*, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libProof.so
#20 0x00007fbcc2624e84 in TProof::Process(TDSet*, TSelector*, char const*, long long, long long) () from /cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase/x86_64/root/6.10.04-x86_64-slc6-gcc62-opt/lib/libProof.so
#21 0x000000000041a3d6 in Runner::Process(TSelector*, bool) ()
#22 0x000000000041a0d9 in main ()
===========================================================

The Warning at the top also occurs without multiprocessing, so I guess it is unrelated.

Can somebody give me a hint on how to get PROOF running?
This thread is somewhat related, but there the code fails later than mine. Also, the OP of that thread was working with the interpreter, but my code is compiled and all of my libraries are statically linked, so all needed classes should be known. The stack traces also look different.


_ROOT Version: 6.10.04 (from the ATLAS software)
_Platform: Linux
_Compiler: g++ 6.2.0. (also from the ATLAS software)


P.S. I build with cmake and there $ROOT_LIBRARIES does not contain Proof. But also my ROOT version isn’t the latest, so it might be already fixed.

edit: fixed scoping error, doesn’t resolve problem

Dear jndrf,

The crash is in the creation of the graphic dialog, so I would suggest to repeat the run in batch mode (start with root -b or call gROOT->SetBatch() before starting PROOF) and see what happens.

Also, do you need additional code in your selector? Your own classes or similar?

G Ganis

Good morning ganis,

using the batch mode has solved the problem, thank you.

Cheers,

jndrf

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.