Print

Print


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