Crash with proof at exit of a minimum compiled program


i did a minimum problem using Proof in compiled mode but it crashes at exit of the program :

*in interpreted mode : it works :
TProof *p=TProof::Open(“”,“workers=2”);

*but in compiled mode, it crashes when the program finishes. Would you have an idea ?

Would you have an idea ?

here is the minimum program :

#include <TProof.h>

using namespace std;

int main()
cout << “phase 1” << endl;
TProof *p=TProof::Open(“”,“workers=2”);
cout << “phase 2” << endl;
cout << “phase 3” << endl;
cout << “phase 4” << endl;
cout << “phase 5” << endl;
cout << “phase 6” << endl;
return 0;

Iif i remove p->Dump() and/or p->Print() and/or p->Close() and/or p->Delete() and/or return 0, it doesn’t help : still crashes

the minimum program is available here :

just in case, i put the full log of the execution below :
(End of Email)

ccali03% main
phase 1
Starting master: opening connection …
Starting master: OK
Opening connections to workers: OK (88 workers)
Setting up worker servers: OK (88 workers)
PROOF set to parallel mode (88 workers)
phase 2
==> Dumping object at: 0x09ff8540, name=ccapl0001-1280826435-5145, class=TProof

fValid true is this a valid proof object
fMaster ->9ff856c master server ("" if a master); used in the browser
fWorkDir ->9ff8574 current work directory on remote servers
fWorkDir.*fData /afs/
fLogLevel 0 server debug logging level
fStatus 0 remote return status (part of kPROOF_LOGDONE)
fCheckFileStatus 1164733269 remote return status after kPROOF_CHECKFILE
*fRecvMessages ->9fda5e0 Messages received during collect not yet processed
*fSlaveInfo ->0 !list returned by kPROOF_GETSLAVEINFO
fMasterServ false true if we are a master server
fSendGroupView true if true send new group view
*fActiveSlaves ->a049820 list of active slaves (subset of all slaves)
*fInactiveSlaves ->a049850 list of inactive slaves (good but not used for processing)
*fUniqueSlaves ->a049880 list of all active slaves with unique file systems
*fAllUniqueSlaves ->a0498b0 list of all active slaves with unique file systems, including all submasters
*fNonUniqueMasters ->a0498e0 list of all active masters with a nonunique file system
*fActiveMonitor ->a0499d0 monitor activity on all active slave sockets
*fUniqueMonitor ->a049a60 monitor activity on all unique slave sockets
*fAllUniqueMonitor ->a049af0 monitor activity on all unique slave sockets, including all submasters
*fCurrentMonitor ->0 currently active monitor
fBytesRead 0 bytes read by all slaves during the session
fRealTime 0.018657 realtime spent by all slaves during the session
fCpuTime 0.02 CPU time spent by all slaves during the session
*fIntHandler ->a050b00 interrupt signal handler (ctrl-c)
*fProgressDialog ->913a758 progress dialog plugin
fProgressDialogStarted false indicates if the progress dialog is up
*fPlayer ->a049670 current player
*fFeedback ->a049798 list of names to be returned as feedback
*fChains ->9fda5b0 chains with this proof set
fFileMap ->9ff85e0 map keeping track of a file’s md5 and mod time
*fDSet ->54653439 current TDSet being validated
fNotIdle 0 Number of non-idle sub-nodes
fSync true true if type of currently processed query is sync
fRunStatus 2017543509 run status
fRedirLog false redirect received log info
fLogFileName ->9ff860c name of the temp file for redirected logs
fLogFileName.*fData /tmp/ProofLog_6PahTP
*fLogFileW ->9ffe638 temp file to redirect logs
*fLogFileR ->9ffd908 temp file to read redirected logs
fLogToWindowOnly false send log to window only
*fWaitingSlaves ->0 stores a TPair of the slaves’s TSocket and TMessage
*fQueries ->0 list of TProofQuery objects
fOtherQueries 0 number of queries in list from previous sessions
fDrawQueries 0 number of draw queries during this sessions
fMaxDrawQueries 1 max number of draw queries kept
fSeqNum 0 Remote sequential # of the last query submitted
fSessionID 20 remote ID of the session
fEndMaster false true for a master in direct contact only with workers
fPackageDir ->9ff8640 package directory (used on client)
fPackageDir.*fData /afs/
*fGlobalPackageDirList ->0 list of directories containing global packages libs
*fPackageLock ->a049b80 package lock
*fEnabledPackagesOnClient ->a049c70 list of packages enabled on client
*fInputData ->0 Input data objects sent over via file
fInputDataFile ->9ff8658 File with input data objects
*fPrintProgress ->0 Function function to display progress info in batch mode
*fCloseMutex ->0 Avoid crashes in MarkBad or alike while closing
*fLoadedMacros ->0 List of loaded macros (just file names)
fUrl ->9ff866c Url of the master
fUrl.fUrl ->9ff8678 full URL
fUrl.fUrl.*fData proof://
fUrl.fProtocol ->9ff8680 protocol: http, ftp, news, root, proof, …
fUrl.fProtocol.*fData proof
fUrl.fUser ->9ff8688 user name
fUrl.fUser.*fData escalier
fUrl.fPasswd ->9ff8690 password
fUrl.fHost ->9ff8698 remote host
fUrl.fFile ->9ff86a0 remote object
fUrl.fAnchor ->9ff86a8 anchor in object (after #)
fUrl.fOptions ->9ff86b0 options/search (after ?)
fUrl.fFileOA ->9ff86b8 !file with option and anchor
fUrl.fHostFQ ->9ff86c0 !fully qualified host name
fUrl.fPort 1093 port through which to contact remote server
fUrl.fUniqueID 0 object unique identifier
fUrl.fBits 0x03000000 bit field status word
fConfFile ->9ff86cc file containing config information
fConfFile.*fData workers=2
fConfDir ->9ff86d4 directory containing cluster config information
fImage ->9ff86dc master’s image name
fProtocol 29 remote PROOF server protocol version number
*fSlaves ->a0497f0 list of all slave servers as in config file
*fBadSlaves ->a049910 dead slaves (subset of all slaves)
*fAllMonitor ->a049940 monitor activity on all valid slave sockets
fDataReady true true if data is ready to be analyzed
fBytesReady 853215014681number of bytes staged
fTotalBytes 593048360666number of bytes to be analyzed
*fAvailablePackages ->0 list of available packages
*fEnabledPackages ->0 list of enabled packages
*fRunningDSets ->0 Temporary datasets used for async running
fCollectTimeout -1 Timeout for (some) collect actions
fDataPoolUrl ->9ff8718 default data pool entry point URL
fDataPoolUrl.*fData root://
fServType 1 type of server: proofd, XrdProofd
*fManager ->9f5fa98 manager to which this session belongs (if any)
fQueryMode 0 default query mode
fDynamicStartup false are the workers started dynamically?
fName ->9ff854c object identifier
fName.*fData ccapl0001-1280826435-5145
fTitle ->9ff8554 object title
fUniqueID 0 object unique identifier
fBits 0x03010000 bit field status word
*fListOfSignals ->0 ! list of signals from this object
*fListOfConnections ->0 ! list of connections to this object
fSignalsBlocked false ! flag used for suppression of signals
phase 3
Connected to: (valid)
Port number: 1093
User: escalier
ROOT version|rev: 5.22/00i|r32710
Architecture-Compiler: linux-gcc432
Proofd protocol version: 29
Client protocol version: 20
Remote protocol version: 29
Log level: 0
Session unique tag: ccapl0001-1280826435-5145
Default data pool: root://
*** Master server 0 (parallel mode, 88 workers):
Master host name: ccapl0001
Port number: 1093
User/Group: escalier/atlas
ROOT version|rev|tag: 5.27/04|r34195|v5-27-04
Architecture-Compiler: linuxx8664gcc-gcc346
Protocol version: 29
Image name:
Working directory: /scratch/proofbox/escalier/session-ccapl0001-1280826435-5145/master-0-ccapl0001-1280826435-5145
Config directory:
Config file:
Log level: 0
Number of workers: 88
Number of active workers: 88
Number of unique workers: 11
Number of inactive workers: 0
Number of bad workers: 0
Total MB’s processed: 0.00
Total real time used (s): 0.039
Total CPU time used (s): 0.030
phase 4
phase 5
phase 6

*** Break *** segmentation violation
Attaching to program: /proc/2492/exe, process 2492
[Thread debugging using libthread_db enabled]
[New Thread 0xf3fb2b90 (LWP 2495)]
[New Thread 0xf4cd9b90 (LWP 2494)]
0xffffe410 in __kernel_vsyscall ()
Thread 3 (Thread 0xf4cd9b90 (LWP 2494)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xf51c8aa6 in nanosleep () from /lib/
#2 0xf51c88cf in sleep () from /lib/
#3 0xf4fce11e in GarbageCollectorThread (arg=0x9f61c38, thr=0x9fd4c70)
#4 0xf4fe19e9 in XrdClientThreadDispatcher (arg=0x9fd4c7c)
#5 0xf507a12f in XrdSysThread_Xeq ()
from /afs/
#6 0xf5295832 in start_thread () from /lib/
#7 0xf5208e0e in clone () from /lib/

Thread 2 (Thread 0xf3fb2b90 (LWP 2495)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xf51ff133 in poll () from /lib/
#2 0xf4fb6c50 in XrdClientSock::RecvRaw (this=0x9fdb410, buffer=0xa0644bc,
length=8, substreamid=-1, usedsubstreamid=0xf3fb2164)
#3 0xf4fd8b68 in XrdClientPhyConnection::ReadRaw (this=0x9fda7d0,
buf=0xa0644bc, len=8, substreamid=-1, usedsubstreamid=0xf3fb2164)
#4 0xf4fd4f0c in XrdClientMessage::ReadRaw (this=0xa064498, phy=0x9fda7d0)
#5 0xf4fd8348 in XrdClientPhyConnection::BuildMessage (this=0x9fda7d0,
IgnoreTimeouts=true, Enqueue=true) at
#6 0xf4fdbd87 in SocketReaderThread (arg=0x9fda7d0, thr=0x9fda490)
#7 0xf4fe19e9 in XrdClientThreadDispatcher (arg=0x9fda49c)
#8 0xf507a12f in XrdSysThread_Xeq ()
from /afs/
#9 0xf5295832 in start_thread () from /lib/
#10 0xf5208e0e in clone () from /lib/

Thread 1 (Thread 0xf51026d0 (LWP 2492)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xf51c85db in waitpid () from /lib/
#2 0xf516d07b in do_system () from /lib/
#3 0xf516d412 in system () from /lib/
#4 0xf529dead in system () from /lib/
#5 0xf7a0211d in TUnixSystem::Exec(char const*) ()
from /afs/
#6 0xf7a0762b in TUnixSystem::StackTrace() ()
from /afs/
#7 0xf7a083cd in TUnixSystem::DispatchSignals(ESignals) ()
from /afs/
#8 0xf7a084cd in SigHandler(ESignals) ()
from /afs/
#9 0xf79fed82 in sighandler(int) ()
from /afs/
#11 0xf53c3388 in vtable for __cxxabiv1::__class_type_info ()
from /afs/
#12 0xf504d53c in TXSockPipe::Flush(TSocket*) ()
from /afs/
#13 0xf504e54f in TXSocket::Close(char const*) ()
from /afs/
#14 0xf504228c in TXProofMgr::SetInvalid() ()
from /afs/
#15 0xf5042c7b in TXProofMgr::~TXProofMgr() ()
from /afs/
#16 0xf79aaecd in TCollection::GarbageCollect(TObject*) ()
from /afs/
#17 0xf79b0dfe in TList::Delete(char const*) ()
from /afs/
#18 0xf795e41b in TROOT::~TROOT() ()
from /afs/
#19 0xf5163059 in __cxa_finalize () from /lib/
#20 0xf7910b44 in __do_global_dtors_aux ()
from /afs/
#21 0xf7d95b40 in _fini ()
from /afs/
#22 0xf7f4d80e in _dl_fini () from /lib/
#23 0xf5162da9 in exit () from /lib/
#24 0xf514cea4 in __libc_start_main () from /lib/
#25 0x08048981 in _start ()
A debugging session is active.

    Inferior 1 [process 2492] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
Detaching from program: /proc/2492/exe, process 2492

You should use


to exit the application instead of ‘return 0’ . This properly terminate things in the correct order required by ROOT.

G. Ganis

wonderful !!!

Indeed it fixes the problem

thank you so much

You should use


to exit the application instead of ‘return 0’ . This properly terminate things in the correct order required by ROOT.

G. Ganis[/quote]

I’ve the same problem and the solution works also for me, but please write a micro tutorial like: “how to compile root session”. For example how to display the speed wheel?