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
|