URL:
<http://savannah.cern.ch/bugs/?83774>
Summary: Memory leak: XrdSecProtocolsslInit
Project: XROOTD
Submitted by: olyad
Submitted on: 2011-06-29 08:06
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Fixed by commit(s):
_______________________________________________________
Details:
Good Morning,
We are currently testing raw data reconstruction with AliEn through memcheck
and dhat. There is one suspicious report (see below for memcheck and the
others at the end of message). Please advise.
XrdSecProtocolssl:1480: XrdSecProtocolssl::CryptoMutexPool[i] = new
XrdSysMutex();
There is a new but no delete?
10,240 bytes in 256 blocks are definitely lost in loss record 208,597 of
209,264
at 0x4A06DC7: operator new(unsigned long) (vg_replace_malloc.c:261)
by 0x266BA619: XrdSecProtocolsslInit (XrdSecProtocolssl.cc:1480)
by 0x23ADFD26: XrdSecPManager::ldPO(XrdOucErrInfo*, char, char const*, char
const*, char const*) (XrdSecPManager.cc:296)
by 0x23ADFFDD: XrdSecPManager::Get(char const*, sockaddr const&,
XrdSecBuffer&) (XrdSecPManager.cc:154)
by 0x23ADEFA0: XrdSecGetProtocol (XrdSecClient.cc:91)
by 0x23D29BAD: XrdClientConn::DoAuthentication(char*, int)
(XrdClientConn.cc:1706)
by 0x23D2E5F2: XrdClientConn::DoLogin() (XrdClientConn.cc:1556)
by 0x23D2FA2B: XrdClientConn::GetAccessToSrv() (XrdClientConn.cc:1281)
by 0x23D58A85: XrdClientAdmin::Connect() (XrdClientAdmin.cc:189)
by 0x2381AC77: gclient::GSIgetToken() (gclient.cxx:482)
by 0x2381F2B4: gclient::Connect(char const*, int, char const*, char const*)
(gclient.cxx:285)
by 0x242172E9: TAlien::TAlien(char const*, char const*, char const*, char
const*) (TAlien.cxx:164)
Thank you.
Best wishes,
Olga
This was reported by dhat: so a single allocation of 1MB, little reads and no
deaths:
max-live: 1,048,576 in 1 blocks
tot-alloc: 1,048,576 in 1 blocks (avg size 1048576.00)
deaths: none (none of these blocks were freed)
acc-ratios: 0.00 rd, 0.25 wr (2,382 b-read, 264,522 b-written)
at 0x4A053AF: malloc (vg_replace_malloc.c:236)
by 0x21D5D99C: XrdClientVector<unsigned short>::Init(int)
(XrdClientVector.hh:64)
by 0x21D5DB78: XrdClientVector<unsigned short>::XrdClientVector(int)
(XrdClientVector.hh:139)
by 0x21D5BCB8: XrdClientSid::XrdClientSid() (XrdClientSid.cc:25)
by 0x21D32F17: XrdClientConnectionMgr::BootUp()
(XrdClientConnMgr.cc:188)
by 0x21D330F1: XrdClientConnectionMgr::XrdClientConnectionMgr()
(XrdClientConnMgr.cc:162)
by 0x21D2C19F: XrdClientConn::XrdClientConn() (XrdClientConn.cc:162)
by 0x21D54556: XrdClientAdmin::XrdClientAdmin(char const*)
(XrdClientAdmin.cc:73)
by 0x21815C6B: gclient::GSIgetToken() (gclient.cxx:472)
by 0x2181A2B4: gclient::Connect(char const*, int, char const*, char
const*) (gclient.cxx:285)
by 0x222122E9: TAlien::TAlien(char const*, char const*, char const*, char
const*) (TAlien.cxx:164)
XrdClientVector.hh:64 rawdata = static_cast<char *>(malloc(mincap *
sizeof_t));
XrdClientVector.hh:158: if (rawdata) free(rawdata);
So this is fine?
----------------------------------------------------------------
memcheck:
520 bytes in 13 blocks are definitely lost in loss record 206,417 of
209,264
at 0x4A06DC7: operator new(unsigned long) (vg_replace_malloc.c:261)
by 0x23D4462A: XrdClientPhyConnection::StartReader()
(XrdClientPhyConnection.cc:222)
by 0x23D2FA0D: XrdClientConn::GetAccessToSrv() (XrdClientConn.cc:1278)
by 0x23D30420: XrdClientConn::GoToAnotherServer(XrdClientUrlInfo&)
(XrdClientConn.cc:2101)
by 0x23D32CB3: XrdClientConn::HandleServerError(XReqErrorType&,
XrdClientMessage*, ClientRequest*) (XrdClientConn.cc:1984)
by 0x23D33A70: XrdClientConn::ReadPartialAnswer(XReqErrorType&, unsigned
long&, ClientRequest*, bool, void**, XrdClientConn::EThreeStateReadHandler&)
(XrdClientConn.cc:1120)
by 0x23D33C5B: XrdClientConn::ClientServerCmd(ClientRequest*, void
const*, void**, void*, bool, int) (XrdClientConn.cc:368)
by 0x23D34361: XrdClientConn::SendGenCommand(ClientRequest*, void const*,
void**, void*, bool, char*, int) (XrdClientConn.cc:473)
by 0x23D1AB66: XrdClient::LowOpen(char const*, unsigned short, unsigned
short, char*) (XrdClient.cc:1113)
by 0x23D1C9E1: XrdClient::TryOpen(unsigned short, unsigned short, bool)
(XrdClient.cc:992)
by 0x23D21086: XrdClient::Open(unsigned short, unsigned short, bool)
(XrdClient.cc:376)
by 0x23FB38B9: TXNetFile::Open(char const*, bool) (TXNetFile.cxx:555)
by 0x23FB4804: TXNetFile::CreateXClient(char const*, char const*, int,
bool) (TXNetFile.cxx:333)
by 0x23FB5963: TXNetFile::TXNetFile(char const*, char const*, char
const*, int, int, bool, char const*) (TXNetFile.cxx:150)
by 0x2421B652: TAlienFile::TAlienFile(char const*, char const*, char
const*, int, bool, char const*, char const*) (TAlienFile.cxx:57)
by 0x2421D555: TAlienFile::Open(char const*, char const*, char const*,
int, bool) (TAlienFile.cxx:468)
XrdClientPhyConnection.cc:222: fReaderthreadhandler[i] = new
XrdClientThread(SocketReaderThread);
delete is there in the destructor. So this is an odd one:
--------------------------------------------------------------------
2,304 bytes in 8 blocks are possibly lost in loss record 207,865 of 209,264
at 0x4A05793: calloc (vg_replace_malloc.c:467)
by 0x3B15610002: _dl_allocate_tls (in /lib64/ld-2.5.so)
by 0x3B16606EB8: pthread_create@@GLIBC_2.2.5 (in
/lib64/libpthread-2.5.so)
by 0x23AED1DD: XrdSysThread::Run(unsigned long*, void* (*)(void*), void*,
int, char const*) (XrdSysPthread.cc:283)
by 0x23D241D7: XrdClientThread::Run(void*) (XrdClientThread.hh:54)
by 0x23D1C7C9: XrdClient::TryOpen(unsigned short, unsigned short, bool)
(XrdClient.cc:962)
by 0x23D21086: XrdClient::Open(unsigned short, unsigned short, bool)
(XrdClient.cc:376)
by 0x238150AC: gclient::InternalCommand(char const*) (gclient.cxx:1001)
by 0x2382018B: gclient::Command(char const*) (gclient.cxx:763)
by 0x2421328D: TAlien::Command(char const*, bool, unsigned int)
(TAlien.cxx:348)
_______________________________________________________
Reply to this item at:
<http://savannah.cern.ch/bugs/?83774>
_______________________________________________
Message sent via/by LCG Savannah
http://savannah.cern.ch/
|