Hi,
sorry for the delay.
As I mentioned above, our C++ application could run without PROOF at all. The PROOF is enabled by command-line parameter at the run time. All the code is already compiled at the moment when user runs application with PROOF enabled. I’m trying to avoid the pointless recompilation on the client. With remote PROOF it’s o.k., but with proof-lite the application won’t work without recompilation. So right now I see two possible solutions:
- Include binaries to PAR and somehow force rebuild them on remote proof cluster, but do not rebuild them while using ProofLite
- Do not include binaries to PAR and somehow make proofserv.exe to load neccessary libraries not from packages.
The output of "valgrind -v ./bean.exe -p “proof@prfserver01:2093” /bes3fs/offline/data/651-1/mc/dst/jpsi/mc1611*.dst " (bean.exe is the application binary)
<...>
Mst-0: building BeanUser ...
Mst-0: make: Nothing to be done for `lib'.
/panfs/panfs.ihep.ac.cn/home/data/eugenyboger/new/bean/workdir
==14509== Syscall param socketcall.send(msg) points to uninitialised byte(s)
==14509== at 0xD52A58: send (in /lib/tls/libpthread-2.3.4.so)
==14509== by 0x79F13CE: XrdClientSock::SendRaw(void const*, int, int) (XrdClientSock.cc:310)
==14509== by 0x7A13CB7: XrdClientPhyConnection::WriteRaw(void const*, int, int) (XrdClientPhyConnection.cc:623)
==14509== by 0x7A0DE8A: XrdClientLogConnection::WriteRaw(void const*, int, int) (XrdClientLogConnection.cc:58)
==14509== by 0x7A07EB5: XrdClientConnectionMgr::WriteRaw(int, void const*, int, int) (XrdClientConnMgr.cc:595)
==14509== by 0x7990DB3: XrdProofConn::WriteRaw(void const*, int) (XrdProofConn.cxx:892)
==14509== by 0x798FCF4: XrdProofConn::LowWrite(XPClientRequest*, void const*, int) (XrdProofConn.cxx:756)
==14509== by 0x798E863: XrdProofConn::SendRecv(XPClientRequest*, void const*, char**) (XrdProofConn.cxx:512)
==14509== by 0x798F37C: XrdProofConn::SendReq(XPClientRequest*, void const*, char**, char const*, bool) (XrdProofConn.cxx:627)
==14509== by 0x7983536: TXSocket::SendRaw(void const*, int, ESendRecvOptions) (TXSocket.cxx:1193)
==14509== by 0x7984D6D: TXSocket::Send(TMessage const&) (TXSocket.cxx:1690)
==14509== by 0x6458209: TProof::Broadcast(TMessage const&, TList*) (TProof.cxx:2167)
==14509== Address 0xA736180 is 1,656 bytes inside a block of size 2,072 alloc'd
==14509== at 0x4004BBE: operator new[](unsigned) (vg_replace_malloc.c:197)
==14509== by 0x42125FC: TStorage::ReAllocChar(char*, unsigned, unsigned) (TStorage.cxx:272)
==14509== by 0x41BDD67: TBuffer::Expand(int) (TBuffer.cxx:189)
==14509== by 0x4E1C231: TBufferFile::WriteUInt(unsigned) (TBufferFile.h:365)
==14509== by 0x41C7C86: operator<<(TBuffer&, unsigned) (TBuffer.h:343)
==14509== by 0x4E171FB: TBufferFile::WriteObjectClass(void const*, TClass const*) (TBufferFile.cxx:2362)
==14509== by 0x4E1741E: TBufferFile::WriteObjectAny(void const*, TClass const*) (TBufferFile.cxx:2446)
==14509== by 0x4E16A2C: TBufferFile::WriteFastArray(void**, TClass const*, int, bool, TMemberStreamer*) (TBufferFile.cxx:2164)
==14509== by 0x4F091E8: int TStreamerInfo::WriteBufferAux<char**>(TBuffer&, char** const&, int, int, int, int) (TStreamerInfoWriteBuffer.cxx:464)
==14509== by 0x4E1A1E1: TBufferFile::WriteClassBuffer(TClass const*, void*) (TBufferFile.cxx:3584)
==14509== by 0x6443CE7: TDSetElement::Streamer(TBuffer&) (TDSet.cxx:1733)
==14509== by 0x429EA35: TClass::StreamerTObjectInitialized(void*, TBuffer&, TClass const*) const (TClass.cxx:4963)
==14509==
==14509== Use of uninitialised value of size 4
==14509== at 0x9FE6C62: TGCompositeFrame::TGCompositeFrame(TGWindow const*, unsigned, unsigned, unsigned, unsigned long) (TGFrame.cxx:827)
==14509== by 0x9FE8DDA: TGMainFrame::TGMainFrame(TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1402)
==14509== by 0x9FEB291: TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1850)
==14509== by 0x7E8DF1C: TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) (TProofProgressDialog.cxx:142)
==14509== by 0x7EE63EE: G__G__SessionViewer_124_0_2(G__value*, char const*, G__param*, int) (in /panfs/panfs.ihep.ac.cn/home/data/eugenyboger/new/dbg/root/lib/libSessionViewer.so)
==14509== by 0x4856205: Cint::G__CallFunc::Execute(void*) (CallFunc.cxx:440)
==14509== by 0x4288C8A: Cint::G__CallFunc::ExecInt(void*) (CallFunc.h:98)
==14509== by 0x4286216: TCint::CallFunc_ExecInt(void*, void*) const (TCint.cxx:2415)
==14509== by 0x42B60DA: TMethodCall::Execute(void*, long&) (TMethodCall.cxx:375)
==14509== by 0x41EE9A6: TMethodCall::Execute(long&) (TMethodCall.h:112)
==14509== by 0x41EC535: TPluginHandler::ExecPlugin(int, ...) (TPluginManager.cxx:316)
==14509== by 0x645C52D: TProof::HandleInputMessage(TSlave*, TMessage*, bool) (TProof.cxx:3147)
==14509==
==14509== Jump to the invalid address stated on the next line
==14509== at 0x874000C: ???
==14509== by 0x9FE8DDA: TGMainFrame::TGMainFrame(TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1402)
==14509== by 0x9FEB291: TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1850)
==14509== by 0x7E8DF1C: TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) (TProofProgressDialog.cxx:142)
==14509== by 0x7EE63EE: G__G__SessionViewer_124_0_2(G__value*, char const*, G__param*, int) (in /panfs/panfs.ihep.ac.cn/home/data/eugenyboger/new/dbg/root/lib/libSessionViewer.so)
==14509== by 0x4856205: Cint::G__CallFunc::Execute(void*) (CallFunc.cxx:440)
==14509== by 0x4288C8A: Cint::G__CallFunc::ExecInt(void*) (CallFunc.h:98)
==14509== by 0x4286216: TCint::CallFunc_ExecInt(void*, void*) const (TCint.cxx:2415)
==14509== by 0x42B60DA: TMethodCall::Execute(void*, long&) (TMethodCall.cxx:375)
==14509== by 0x41EE9A6: TMethodCall::Execute(long&) (TMethodCall.h:112)
==14509== by 0x41EC535: TPluginHandler::ExecPlugin(int, ...) (TPluginManager.cxx:316)
==14509== by 0x645C52D: TProof::HandleInputMessage(TSlave*, TMessage*, bool) (TProof.cxx:3147)
==14509== Address 0x874000C is not stack'd, malloc'd or (recently) free'd
*** Break *** segmentation violation
--14509-- discard syms at 0x6A3F000-0x6A4A000 in /lib/libnss_files-2.3.4.so due to munmap()
--14509-- discard syms at 0x6033000-0x6039000 in /lib/libnss_dns-2.3.4.so due to munmap()
--14509-- discard syms at 0x19E000-0x1B1000 in /lib/libresolv-2.3.4.so due to munmap()
==14509==
==14509== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 82 from 2)
==14509==
==14509== 1 errors in context 1 of 3:
==14509== Jump to the invalid address stated on the next line
==14509== at 0x874000C: ???
==14509== by 0x9FE8DDA: TGMainFrame::TGMainFrame(TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1402)
==14509== by 0x9FEB291: TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1850)
==14509== by 0x7E8DF1C: TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) (TProofProgressDialog.cxx:142)
==14509== by 0x7EE63EE: G__G__SessionViewer_124_0_2(G__value*, char const*, G__param*, int) (in /panfs/panfs.ihep.ac.cn/home/data/eugenyboger/new/dbg/root/lib/libSessionViewer.so)
==14509== by 0x4856205: Cint::G__CallFunc::Execute(void*) (CallFunc.cxx:440)
==14509== by 0x4288C8A: Cint::G__CallFunc::ExecInt(void*) (CallFunc.h:98)
==14509== by 0x4286216: TCint::CallFunc_ExecInt(void*, void*) const (TCint.cxx:2415)
==14509== by 0x42B60DA: TMethodCall::Execute(void*, long&) (TMethodCall.cxx:375)
==14509== by 0x41EE9A6: TMethodCall::Execute(long&) (TMethodCall.h:112)
==14509== by 0x41EC535: TPluginHandler::ExecPlugin(int, ...) (TPluginManager.cxx:316)
==14509== by 0x645C52D: TProof::HandleInputMessage(TSlave*, TMessage*, bool) (TProof.cxx:3147)
==14509== Address 0x874000C is not stack'd, malloc'd or (recently) free'd
==14509==
==14509== 1 errors in context 2 of 3:
==14509== Use of uninitialised value of size 4
==14509== at 0x9FE6C62: TGCompositeFrame::TGCompositeFrame(TGWindow const*, unsigned, unsigned, unsigned, unsigned long) (TGFrame.cxx:827)
==14509== by 0x9FE8DDA: TGMainFrame::TGMainFrame(TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1402)
==14509== by 0x9FEB291: TGTransientFrame::TGTransientFrame(TGWindow const*, TGWindow const*, unsigned, unsigned, unsigned) (TGFrame.cxx:1850)
==14509== by 0x7E8DF1C: TProofProgressDialog::TProofProgressDialog(TProof*, char const*, int, long long, long long) (TProofProgressDialog.cxx:142)
==14509== by 0x7EE63EE: G__G__SessionViewer_124_0_2(G__value*, char const*, G__param*, int) (in /panfs/panfs.ihep.ac.cn/home/data/eugenyboger/new/dbg/root/lib/libSessionViewer.so)
==14509== by 0x4856205: Cint::G__CallFunc::Execute(void*) (CallFunc.cxx:440)
==14509== by 0x4288C8A: Cint::G__CallFunc::ExecInt(void*) (CallFunc.h:98)
==14509== by 0x4286216: TCint::CallFunc_ExecInt(void*, void*) const (TCint.cxx:2415)
==14509== by 0x42B60DA: TMethodCall::Execute(void*, long&) (TMethodCall.cxx:375)
==14509== by 0x41EE9A6: TMethodCall::Execute(long&) (TMethodCall.h:112)
==14509== by 0x41EC535: TPluginHandler::ExecPlugin(int, ...) (TPluginManager.cxx:316)
==14509== by 0x645C52D: TProof::HandleInputMessage(TSlave*, TMessage*, bool) (TProof.cxx:3147)
==14509==
==14509== 1 errors in context 3 of 3:
==14509== Syscall param socketcall.send(msg) points to uninitialised byte(s)
==14509== at 0xD52A58: send (in /lib/tls/libpthread-2.3.4.so)
==14509== by 0x79F13CE: XrdClientSock::SendRaw(void const*, int, int) (XrdClientSock.cc:310)
==14509== by 0x7A13CB7: XrdClientPhyConnection::WriteRaw(void const*, int, int) (XrdClientPhyConnection.cc:623)
==14509== by 0x7A0DE8A: XrdClientLogConnection::WriteRaw(void const*, int, int) (XrdClientLogConnection.cc:58)
==14509== by 0x7A07EB5: XrdClientConnectionMgr::WriteRaw(int, void const*, int, int) (XrdClientConnMgr.cc:595)
==14509== by 0x7990DB3: XrdProofConn::WriteRaw(void const*, int) (XrdProofConn.cxx:892)
==14509== by 0x798FCF4: XrdProofConn::LowWrite(XPClientRequest*, void const*, int) (XrdProofConn.cxx:756)
==14509== by 0x798E863: XrdProofConn::SendRecv(XPClientRequest*, void const*, char**) (XrdProofConn.cxx:512)
==14509== by 0x798F37C: XrdProofConn::SendReq(XPClientRequest*, void const*, char**, char const*, bool) (XrdProofConn.cxx:627)
==14509== by 0x7983536: TXSocket::SendRaw(void const*, int, ESendRecvOptions) (TXSocket.cxx:1193)
==14509== by 0x7984D6D: TXSocket::Send(TMessage const&) (TXSocket.cxx:1690)
==14509== by 0x6458209: TProof::Broadcast(TMessage const&, TList*) (TProof.cxx:2167)
==14509== Address 0xA736180 is 1,656 bytes inside a block of size 2,072 alloc'd
==14509== at 0x4004BBE: operator new[](unsigned) (vg_replace_malloc.c:197)
==14509== by 0x42125FC: TStorage::ReAllocChar(char*, unsigned, unsigned) (TStorage.cxx:272)
==14509== by 0x41BDD67: TBuffer::Expand(int) (TBuffer.cxx:189)
==14509== by 0x4E1C231: TBufferFile::WriteUInt(unsigned) (TBufferFile.h:365)
==14509== by 0x41C7C86: operator<<(TBuffer&, unsigned) (TBuffer.h:343)
==14509== by 0x4E171FB: TBufferFile::WriteObjectClass(void const*, TClass const*) (TBufferFile.cxx:2362)
==14509== by 0x4E1741E: TBufferFile::WriteObjectAny(void const*, TClass const*) (TBufferFile.cxx:2446)
==14509== by 0x4E16A2C: TBufferFile::WriteFastArray(void**, TClass const*, int, bool, TMemberStreamer*) (TBufferFile.cxx:2164)
==14509== by 0x4F091E8: int TStreamerInfo::WriteBufferAux<char**>(TBuffer&, char** const&, int, int, int, int) (TStreamerInfoWriteBuffer.cxx:464)
==14509== by 0x4E1A1E1: TBufferFile::WriteClassBuffer(TClass const*, void*) (TBufferFile.cxx:3584)
==14509== by 0x6443CE7: TDSetElement::Streamer(TBuffer&) (TDSet.cxx:1733)
==14509== by 0x429EA35: TClass::StreamerTObjectInitialized(void*, TBuffer&, TClass const*) const (TClass.cxx:4963)
--14509--
--14509-- supp: 67 Ubuntu-stripped-ld.so
--14509-- supp: 15 dl_relocate_object
==14509==
==14509== IN SUMMARY: 3 errors from 3 contexts (suppressed: 82 from 2)
==14509==
==14509== malloc/free: in use at exit: 7,207,486 bytes in 82,573 blocks.
==14509== malloc/free: 1,080,470 allocs, 997,897 frees, 51,371,621 bytes allocated.
==14509==
==14509== searching for pointers to 82,573 not-freed blocks.
==14509== checked 32,443,260 bytes.
==14509==
==14509== LEAK SUMMARY:
==14509== definitely lost: 1,007 bytes in 25 blocks.
==14509== possibly lost: 377,304 bytes in 7,938 blocks.
==14509== still reachable: 6,829,175 bytes in 74,610 blocks.
==14509== suppressed: 0 bytes in 0 blocks.
==14509== Use --leak-check=full to see details of leaked memory.
--14509-- memcheck: sanity checks: 6586 cheap, 264 expensive
--14509-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use
--14509-- memcheck: auxmaps: 0 searches, 0 comparisons
--14509-- memcheck: secondaries: 540 issued (34560k, 33M)
--14509-- memcheck: secondaries: 1049 accessible and distinguished (67136k, 65M)
--14509-- tt/tc: 1,896,258 tt lookups requiring 26,042,695 probes
--14509-- tt/tc: 1,896,257 fast-cache updates, 8 flushes
--14509-- translate: new 132,976 (3,248,977 -> 50,669,061; ratio 155:10) [0 scs]
--14509-- translate: dumped 0 (0 -> ??)
--14509-- translate: discarded 871 (17,909 -> ??)
--14509-- scheduler: 328,074,908 jumps (bb entries).
--14509-- scheduler: 6,586/3,859,942 major/minor sched events.
--14509-- sanity: 6587 cheap, 264 expensive checks.
--14509-- exectx: 30,011 lists, 66,695 contexts (avg 2 per list)
--14509-- exectx: 2,078,451 searches, 2,143,723 full compares (1,031 per 1000)
--14509-- exectx: 0 cmp2, 194 cmp4, 0 cmpAll