Crash with proof at exit of a minimum compiled program

Hello,

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

*in interpreted mode : it works :
root
TProof *p=TProof::Open(“ccapl0001.in2p3.fr”,“workers=2”);
.q
==>OK

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

Would you have an idea ?
thanks

here is the minimum program :

#include <TProof.h>
#include

using namespace std;

int main()
{
cout << “phase 1” << endl;
TProof *p=TProof::Open(“ccapl0001.in2p3.fr”,“workers=2”);
cout << “phase 2” << endl;
p->Dump();
cout << “phase 3” << endl;
p->Print();
cout << “phase 4” << endl;
p->Close();
cout << “phase 5” << endl;
p->Delete();
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 :
/afs/in2p3.fr/home/e/escalier/public/MinimumProblemProof

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
fMaster.*fData ccapl0001.in2p3.fr
fWorkDir ->9ff8574 current work directory on remote servers
fWorkDir.*fData /afs/in2p3.fr/home/e/escalier/public/MinimumProblemProof/bin
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/in2p3.fr/home/e/escalier/.proof/packages
*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
fInputDataFile.*fData
*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://escalier@ccapl0001.in2p3.fr/
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.fPasswd.*fData
fUrl.fHost ->9ff8698 remote host
fUrl.fHost.*fData ccapl0001.in2p3.fr
fUrl.fFile ->9ff86a0 remote object
fUrl.fFile.*fData
fUrl.fAnchor ->9ff86a8 anchor in object (after #)
fUrl.fAnchor.*fData
fUrl.fOptions ->9ff86b0 options/search (after ?)
fUrl.fOptions.*fData
fUrl.fFileOA ->9ff86b8 !file with option and anchor
fUrl.fFileOA.*fData
fUrl.fHostFQ ->9ff86c0 !fully qualified host name
fUrl.fHostFQ.*fData
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
fConfDir.*fData
fImage ->9ff86dc master’s image name
fImage.*fData
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://ccapl0001.in2p3.fr//proofpool
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
fTitle.*fData ccapl0001.in2p3.fr
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: ccapl0001.in2p3.fr (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://ccapl0001.in2p3.fr//proofpool
*** 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: ccapl0001.in2p3.fr:/scratch/proofbox/escalier
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/libc.so.6
#2 0xf51c88cf in sleep () from /lib/libc.so.6
#3 0xf4fce11e in GarbageCollectorThread (arg=0x9f61c38, thr=0x9fd4c70)
at XrdClientConnMgr.cc:73
#4 0xf4fe19e9 in XrdClientThreadDispatcher (arg=0x9fd4c7c)
at XrdClientThread.cc:32
#5 0xf507a12f in XrdSysThread_Xeq ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#6 0xf5295832 in start_thread () from /lib/libpthread.so.0
#7 0xf5208e0e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xf3fb2b90 (LWP 2495)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xf51ff133 in poll () from /lib/libc.so.6
#2 0xf4fb6c50 in XrdClientSock::RecvRaw (this=0x9fdb410, buffer=0xa0644bc,
length=8, substreamid=-1, usedsubstreamid=0xf3fb2164)
at XrdClientSock.cc:131
#3 0xf4fd8b68 in XrdClientPhyConnection::ReadRaw (this=0x9fda7d0,
buf=0xa0644bc, len=8, substreamid=-1, usedsubstreamid=0xf3fb2164)
at XrdClientPhyConnection.cc:362
#4 0xf4fd4f0c in XrdClientMessage::ReadRaw (this=0xa064498, phy=0x9fda7d0)
at XrdClientMessage.cc:152
#5 0xf4fd8348 in XrdClientPhyConnection::BuildMessage (this=0x9fda7d0,
IgnoreTimeouts=true, Enqueue=true) at XrdClientPhyConnection.cc:443
#6 0xf4fdbd87 in SocketReaderThread (arg=0x9fda7d0, thr=0x9fda490)
at XrdClientPhyConnection.cc:61
#7 0xf4fe19e9 in XrdClientThreadDispatcher (arg=0x9fda49c)
at XrdClientThread.cc:32
#8 0xf507a12f in XrdSysThread_Xeq ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#9 0xf5295832 in start_thread () from /lib/libpthread.so.0
#10 0xf5208e0e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xf51026d0 (LWP 2492)):
#0 0xffffe410 in __kernel_vsyscall ()
#1 0xf51c85db in waitpid () from /lib/libc.so.6
#2 0xf516d07b in do_system () from /lib/libc.so.6
#3 0xf516d412 in system () from /lib/libc.so.6
#4 0xf529dead in system () from /lib/libpthread.so.0
#5 0xf7a0211d in TUnixSystem::Exec(char const*) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#6 0xf7a0762b in TUnixSystem::StackTrace() ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#7 0xf7a083cd in TUnixSystem::DispatchSignals(ESignals) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#8 0xf7a084cd in SigHandler(ESignals) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#9 0xf79fed82 in sighandler(int) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#10
#11 0xf53c3388 in vtable for __cxxabiv1::__class_type_info ()
from /afs/cern.ch/sw/lcg/external/gcc/4.3.2/x86_64-slc5/lib/libstdc++.so.6
#12 0xf504d53c in TXSockPipe::Flush(TSocket*) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#13 0xf504e54f in TXSocket::Close(char const*) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#14 0xf504228c in TXProofMgr::SetInvalid() ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#15 0xf5042c7b in TXProofMgr::~TXProofMgr() ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libProofx.so
#16 0xf79aaecd in TCollection::GarbageCollect(TObject*) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#17 0xf79b0dfe in TList::Delete(char const*) ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#18 0xf795e41b in TROOT::~TROOT() ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#19 0xf5163059 in __cxa_finalize () from /lib/libc.so.6
#20 0xf7910b44 in __do_global_dtors_aux ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#21 0xf7d95b40 in _fini ()
from /afs/cern.ch/atlas/software/builds/DetCommon/15.6.9/InstallArea/i686-slc5-gcc43-opt/lib/libCore.so
#22 0xf7f4d80e in _dl_fini () from /lib/ld-linux.so.2
#23 0xf5162da9 in exit () from /lib/libc.so.6
#24 0xf514cea4 in __libc_start_main () from /lib/libc.so.6
#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

Hi,
You should use

  gSystem->Exit(0);

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

[quote=“ganis”]Hi,
You should use

  gSystem->Exit(0);

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?