URL: <http://savannah.cern.ch/bugs/?90686> Summary: SEGV in do_Write Project: XROOTD Submitted by: apeters Submitted on: 2012-01-20 10:14 Severity: 3 - Normal Priority: 3 - Low Status: None Privacy: Public Assigned to: abh Originator Email: Open/Closed: Open Discussion Lock: Any Fixed by commit(s): _______________________________________________________ Details: Hi, we have seen very rarely but atleast 3 times during the last 2 month a SEGV with the following signature: #0 0x00002b5f8590eb60 in strlen () from /lib64/libc.so.6 #1 0x000000000041954c in XrdXrootdResponse::Send (this=0x2aae341fb510, ecode=kXR_FSError, msg=0x1c <Address 0x1c out of bounds>) at /usr/src/debug/xrootd/xrootd/src/XrdXrootd/XrdXrootdResponse.cc:182 #2 0x000000000041e1d3 in XrdXrootdProtocol::do_Write (this=0x2aae341fb2d0) at /usr/src/debug/xrootd/xrootd/src/XrdXrootd/XrdXrootdXeq.cc:2199 #3 0x0000003339243d80 in XrdLink::DoIt (this=0x2aad7652a458) at /usr/src/debug/xrootd/xrootd/src/Xrd/XrdLink.cc:420 #4 0x0000003339248096 in XrdScheduler::Run (this=0x333980a860) at /usr/src/debug/xrootd/xrootd/src/Xrd/XrdScheduler.cc:287 #5 0x0000003339248229 in XrdStartWorking (carg=0x1c) at /usr/src/debug/xrootd/xrootd/src/Xrd/XrdScheduler.cc:65 #6 0x0000003339219de7 in XrdSysThread_Xeq (myargs=<value optimized out>) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.cc:87 #7 0x00002b5f851f273d in start_thread () from /lib64/libpthread.so.0 #8 0x00002b5f859694bd in clone () from /lib64/libc.so.6 (gdb) print this->FTab $1 = (XrdXrootdFileTable *) 0x0 (gdb) print *this->myFile $3 = {XrdSfsp = 0x0, mmAddr = 0x2aae33e8b4b0 "p\225!2\256*", fSize = 0, fdNum = 0, FileID = 0, FileKey = '\000' <repeats 33 times>, Reserved = "\000", FileMode = 0 '\000', AsyncMode = 0 '\000', isMMapped = 0 '\000', sfEnabled = 0 '\000', ID = 0x0, readCnt = 0, writeCnt = 0, static Locker = 0x2aab0bbac3f0, static sfOK = 0, static TraceID = 0x4242cf "File"} If I understand this function right, we can only have SEGV in that place if the following happened: if (!FTab || !(myFile = FTab->Get(fh.handle))) {if (argp) return do_WriteNone(); Response.Send(kXR_FileNotOpen,"write does not refer to an open file"); return Link->setEtext("write protcol violation"); } Few lines later (when the SIGV happens): myFile!=0 => FTab must have been !=0, but now is 0 => someone must have run Recycle on the protocol object ?!?!? The xrootd server is pretty loaded all the time (~k clients). _______________________________________________________ Reply to this item at: <http://savannah.cern.ch/bugs/?90686> _______________________________________________ Message sent via/by LCG Savannah http://savannah.cern.ch/ ######################################################################## Use REPLY-ALL to reply to list To unsubscribe from the XROOTD-DEV list, click the following link: https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1