URL:
<http://savannah.cern.ch/bugs/?83619>
Summary: Data race condition: XrdClientSock
Project: XROOTD
Submitted by: olyad
Submitted on: 2011-06-24 15:04
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 Afternoon,
The following results were returned by valgrind helgrind tool when running
data reconstruction with xrootd v3.0.4 compiled in debug.
Please advise. Thank you.
Best wishes,
Olga
Possible data race during write of size 4 at 0x275929b8 by thread #1
at 0x22128842: XrdClientSock::Disconnect() (XrdClientSock.cc:94)
by 0x2214416E: XrdClientPhyConnection::Disconnect()
(XrdClientPhyConnection.cc:278)
by 0x2213A48A: DisconnectElapsedPhyConn(char const*,
XrdClientPhyConnection*, void*) (XrdClientConnMgr.cc:94)
by 0x2213D527: XrdOucHash<XrdClientPhyConnection>::Apply(int (*)(char
const*, XrdClientPhyConnection*, void*), void*) (XrdOucHash.icc:101)
by 0x2213A7E5: XrdClientConnectionMgr::GarbageCollect()
(XrdClientConnMgr.cc:254)
by 0x2213B1B7: XrdClientConnectionMgr::Connect(XrdClientUrlInfo)
(XrdClientConnMgr.cc:350)
by 0x22131DBA: XrdClientConn::Connect(XrdClientUrlInfo,
XrdClientAbsUnsolMsgHandler*) (XrdClientConn.cc:245)
by 0x22122290: XrdClient::Open(unsigned short, unsigned short, bool)
(XrdClient.cc:270)
by 0x21C170AC: gclient::InternalCommand(char const*) (gclient.cxx:1001)
by 0x21C2218B: gclient::Command(char const*) (gclient.cxx:763)
by 0x2261528D: TAlien::Command(char const*, bool, unsigned int)
(TAlien.cxx:348)
by 0x2261E4DE: TAlienFile::Open(char const*, char const*, char const*,
int, bool) (TAlienFile.cxx:277)
Address 0x275929b8 is 8 bytes inside a block of size 208 alloc'd
at 0x4A07057: operator new(unsigned long) (vg_replace_malloc.c:261)
by 0x22146C40: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool,
int) (XrdClientPhyConnection.cc:156)
by 0x2214738D: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool)
(XrdClientPhyConnection.cc:137)
by 0x2213B592: XrdClientConnectionMgr::Connect(XrdClientUrlInfo)
(XrdClientConnMgr.cc:406)
by 0x22131DBA: XrdClientConn::Connect(XrdClientUrlInfo,
XrdClientAbsUnsolMsgHandler*) (XrdClientConn.cc:245)
by 0x22132259: XrdClientConn::GoToAnotherServer(XrdClientUrlInfo&)
(XrdClientConn.cc:2084)
by 0x22134CB3: XrdClientConn::HandleServerError(XReqErrorType&,
XrdClientMessage*, ClientRequest*) (XrdClientConn.cc:1984)
by 0x22135A70: XrdClientConn::ReadPartialAnswer(XReqErrorType&, unsigned
long&, ClientRequest*, bool, void**, XrdClientConn::EThreeStateReadHandler&)
(XrdClientConn.cc:1120)
by 0x22135C5B: XrdClientConn::ClientServerCmd(ClientRequest*, void
const*, void**, void*, bool, int) (XrdClientConn.cc:368)
by 0x22136361: XrdClientConn::SendGenCommand(ClientRequest*, void const*,
void**, void*, bool, char*, int) (XrdClientConn.cc:473)
by 0x2211CB66: XrdClient::LowOpen(char const*, unsigned short, unsigned
short, char*) (XrdClient.cc:1113)
by 0x2211E9E1: XrdClient::TryOpen(unsigned short, unsigned short, bool)
(XrdClient.cc:992)
Possible data race during read of size 4 at 0x275929b8 by thread #18
at 0x22128166: XrdClientSock::RecvRaw(void*, int, int, int*)
(XrdClientSock.cc:148)
by 0x221455C2: XrdClientPhyConnection::ReadRaw(void*, int, int, int*)
(XrdClientPhyConnection.cc:358)
by 0x22143071: XrdClientMessage::ReadRaw(XrdClientPhyConnection*)
(XrdClientMessage.cc:152)
by 0x22144D98: XrdClientPhyConnection::BuildMessage(bool, bool)
(XrdClientPhyConnection.cc:439)
by 0x22148C87: SocketReaderThread(void*, XrdClientThread*)
(XrdClientPhyConnection.cc:57)
by 0x2214D379: XrdClientThreadDispatcher(void*) (XrdClientThread.cc:32)
by 0x21EEF502: XrdSysThread_Xeq (XrdSysPthread.cc:87)
by 0x4A0B6F9: mythread_wrapper (hg_intercepts.c:221)
by 0x3B1660673C: start_thread (in /lib64/libpthread-2.5.so)
by 0x3B15AD44BC: clone (in /lib64/libc-2.5.so)
This conflicts with a previous write of size 4 by thread #1
at 0x22128842: XrdClientSock::Disconnect() (XrdClientSock.cc:94)
by 0x2214416E: XrdClientPhyConnection::Disconnect()
(XrdClientPhyConnection.cc:278)
by 0x2213A4AC: DisconnectElapsedPhyConn(char const*,
XrdClientPhyConnection*, void*) (XrdClientConnMgr.cc:101)
by 0x2213D527: XrdOucHash<XrdClientPhyConnection>::Apply(int (*)(char
const*, XrdClientPhyConnection*, void*), void*) (XrdOucHash.icc:101)
by 0x2213A7E5: XrdClientConnectionMgr::GarbageCollect()
(XrdClientConnMgr.cc:254)
by 0x2213B1B7: XrdClientConnectionMgr::Connect(XrdClientUrlInfo)
(XrdClientConnMgr.cc:350)
by 0x22131DBA: XrdClientConn::Connect(XrdClientUrlInfo,
XrdClientAbsUnsolMsgHandler*) (XrdClientConn.cc:245)
by 0x22122290: XrdClient::Open(unsigned short, unsigned short, bool)
(XrdClient.cc:270)
Address 0x275929b8 is 8 bytes inside a block of size 208 alloc'd
at 0x4A07057: operator new(unsigned long) (vg_replace_malloc.c:261)
by 0x22146C40: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool,
int) (XrdClientPhyConnection.cc:156)
by 0x2214738D: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool)
(XrdClientPhyConnection.cc:137)
by 0x2213B592: XrdClientConnectionMgr::Connect(XrdClientUrlInfo)
(XrdClientConnMgr.cc:406)
by 0x22131DBA: XrdClientConn::Connect(XrdClientUrlInfo,
XrdClientAbsUnsolMsgHandler*) (XrdClientConn.cc:245)
by 0x22132259: XrdClientConn::GoToAnotherServer(XrdClientUrlInfo&)
(XrdClientConn.cc:2084)
by 0x22134CB3: XrdClientConn::HandleServerError(XReqErrorType&,
XrdClientMessage*, ClientRequest*) (XrdClientConn.cc:1984)
by 0x22135A70: XrdClientConn::ReadPartialAnswer(XReqErrorType&, unsigned
long&, ClientRequest*, bool, void**, XrdClientConn::EThreeStateReadHandler&)
(XrdClientConn.cc:1120)
by 0x22135C5B: XrdClientConn::ClientServerCmd(ClientRequest*, void
const*, void**, void*, bool, int) (XrdClientConn.cc:368)
by 0x22136361: XrdClientConn::SendGenCommand(ClientRequest*, void const*,
void**, void*, bool, char*, int) (XrdClientConn.cc:473)
by 0x2211CB66: XrdClient::LowOpen(char const*, unsigned short, unsigned
short, char*) (XrdClient.cc:1113)
by 0x2211E9E1: XrdClient::TryOpen(unsigned short, unsigned short, bool)
(XrdClient.cc:992)
Possible data race during read of size 1 at 0x2a13de88 by thread #27
at 0x22128178: XrdClientSock::RecvRaw(void*, int, int, int*)
(XrdClientSock.cc:149)
by 0x221455C2: XrdClientPhyConnection::ReadRaw(void*, int, int, int*)
(XrdClientPhyConnection.cc:358)
by 0x22143071: XrdClientMessage::ReadRaw(XrdClientPhyConnection*)
(XrdClientMessage.cc:152)
by 0x22144D98: XrdClientPhyConnection::BuildMessage(bool, bool)
(XrdClientPhyConnection.cc:439)
by 0x22148C87: SocketReaderThread(void*, XrdClientThread*)
(XrdClientPhyConnection.cc:57)
by 0x2214D379: XrdClientThreadDispatcher(void*) (XrdClientThread.cc:32)
by 0x21EEF502: XrdSysThread_Xeq (XrdSysPthread.cc:87)
by 0x4A0B6F9: mythread_wrapper (hg_intercepts.c:221)
by 0x3B1660673C: start_thread (in /lib64/libpthread-2.5.so)
by 0x3B15AD44BC: clone (in /lib64/libc-2.5.so)
Address 0x2a13de88 is 200 bytes inside a block of size 208 alloc'd
at 0x4A07057: operator new(unsigned long) (vg_replace_malloc.c:261)
by 0x22146C40: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool,
int) (XrdClientPhyConnection.cc:156)
by 0x2214738D: XrdClientPhyConnection::Connect(XrdClientUrlInfo, bool)
(XrdClientPhyConnection.cc:137)
by 0x2213B592: XrdClientConnectionMgr::Connect(XrdClientUrlInfo)
(XrdClientConnMgr.cc:406)
by 0x22131DBA: XrdClientConn::Connect(XrdClientUrlInfo,
XrdClientAbsUnsolMsgHandler*) (XrdClientConn.cc:245)
by 0x22132259: XrdClientConn::GoToAnotherServer(XrdClientUrlInfo&)
(XrdClientConn.cc:2084)
by 0x22134CB3: XrdClientConn::HandleServerError(XReqErrorType&,
XrdClientMessage*, ClientRequest*) (XrdClientConn.cc:1984)
by 0x22135A70: XrdClientConn::ReadPartialAnswer(XReqErrorType&, unsigned
long&, ClientRequest*, bool, void**, XrdClientConn::EThreeStateReadHandler&)
(XrdClientConn.cc:1120)
by 0x22135C5B: XrdClientConn::ClientServerCmd(ClientRequest*, void
const*, void**, void*, bool, int) (XrdClientConn.cc:368)
by 0x22136361: XrdClientConn::SendGenCommand(ClientRequest*, void const*,
void**, void*, bool, char*, int) (XrdClientConn.cc:473)
by 0x2211CB66: XrdClient::LowOpen(char const*, unsigned short, unsigned
short, char*) (XrdClient.cc:1113)
by 0x2211E9E1: XrdClient::TryOpen(unsigned short, unsigned short, bool)
(XrdClient.cc:992)
_______________________________________________________
Reply to this item at:
<http://savannah.cern.ch/bugs/?83619>
_______________________________________________
Message sent via/by LCG Savannah
http://savannah.cern.ch/
|