Hello
I’m using a C++ framework which internally opens PROOF session. The code can be found at http://atlas-sw.cern.ch/cgi-bin/viewcvs-atlas.cgi/groups/sframe/SFrame/core/src/SCycleController.cxx?revision=1.6.2.7&view=markup&pathrev=SFrame-PROOF-branch
Right now I’m using PROOF lite only.
In it, it opens PROOF connection like
and runs analysis on a given set of files. The SCycleController manages many instances of such analysis so, it can keep using the PROOF session that was opened first.
Over time though (say after 5 hours of continuous running) it accumulates large amount of memory possibly due to my code but maybe due to PROOF, so I’d like to close the session every time it is reasonable to do so.
Shutting down is performed like
TProofMgr* mgr = m_proof->GetManager();
delete m_proof;
delete mgr;
which is OK, but on reopening after shutting down, again using
it crashes with the following
code TUnixSystem::Di… : bus error
/Users/akira/Analysis/SFrame/dilepton/config/90186: No such file or directory.
Attaching to process 90186.
Reading symbols for shared libraries . done
Reading symbols for shared libraries … done
0x91e72189 in wait4 ()
========== STACKS OF ALL THREADS ==========
Thread 1 (process 90186 thread 0x10b):
#0 0x91e72189 in wait4 ()
#1 0x91e6fcd4 in system$UNIX2003 ()
#2 0x008c5ee1 in TUnixSystem::StackTrace ()
#3 0x008c9865 in TUnixSystem::DispatchSignals ()
#4 0x008c99d8 in SigHandler ()
#5
#6 0x02be10d0 in TProofMgr::GetListOfManagers ()
#7 0x02be2a2d in TProofMgr::Create ()
#8 0x02bb05ab in TProof::Open ()
#9 0x0015e335 in SCycleController::InitProof (this=0xbfffef64, server=@0xbfffecfc) at src/SCycleController.cxx:649
[/code]
I suspected that delete only is not good enough to shut down PROOF and release everything but after trying combination of the following commands, I still see crash:
m_proof->Close();
TProofMgr* mgr = m_proof->GetManager();
mgr->ShutdownSession(m_proof);
mgr->Reset();
If I quit the execution of SCycleController (at which point m_proof is deleted) and then start immediately, I don’t see this problem but I would like to have the ability to run continuously.
Could you help me on this?
Thanks
Akira