URL: <http://savannah.cern.ch/bugs/?93616> Summary: XrdOucCache pre-read hangs in XrdPosixXrootd::Close Project: XROOTD Submitted by: apeters Submitted on: 2012-04-12 09:59 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: With a certain probability the POSIX close function hangs, if pre-read is enabled in XrdOucCache. The main thread is waiting (gdb) where #0 0x0000003da6a0cd21 in sem_wait () from /lib64/libpthread.so.0 #1 0x0000003b50420f16 in Wait (this=0xef0f8b0) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.hh:315 #2 XrdOucCacheData::Detach (this=0xef0f8b0) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheData.cc:117 #3 0x0000003b50c08d3c in XrdPosixFile::~XrdPosixFile (this=0xef08150, __in_chrg=<value optimized out>) at /usr/src/debug/xrootd/xrootd/src/XrdPosix/XrdPosixXrootd.cc:393 #4 0x0000003b50c06534 in XrdPosixXrootd::Close (fildes=<value optimized out>, Stream=0) at /usr/src/debug/xrootd/xrootd/src/XrdPosix/XrdPosixXrootd.cc:566 #5 0x0000000000400fde in main (argc=2, argv=0x7fff45479408) at /root/eos-3.1.0/eos/test/XrdCpPosixCache.cc:69 because the pre-read threads do not terminate: (gdb) where #0 0x0000003da6a0cd21 in sem_wait () from /lib64/libpthread.so.0 #1 0x0000003b50423822 in Wait (this=0xeefda90) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.hh:315 #2 XrdOucCacheReal::PreRead (this=0xeefda90) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheReal.cc:444 #3 0x0000003b50423999 in XrdOucCacheRealPRXeq (parg=0xeefdc58) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheReal.cc:34 #4 0x0000003b5041be7f in XrdSysThread_Xeq (myargs=<value optimized out>) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.cc:67 #5 0x0000003da6a0673d in start_thread () from /lib64/libpthread.so.0 #6 0x0000003da62d44bd in clone () from /lib64/libc.so.6 Two pre-read threads are waiting for prReady, the third pre-read thread is waiting in some locking function for a semaphore: (gdb) where #0 0x0000003da6a0cd21 in sem_wait () from /lib64/libpthread.so.0 #1 0x0000003b5041c662 in Wait (this=0xef0f920, usage=xs_Exclusive) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.hh:315 #2 XrdSysXSLock::Lock (this=0xef0f920, usage=xs_Exclusive) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysXSLock.cc:60 #3 0x0000003b50420676 in MrSw (this=0xef0f8b0) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheData.hh:71 #4 XrdOucCacheData::Preread (this=0xef0f8b0) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheData.cc:157 #5 0x0000003b5042386c in XrdOucCacheReal::PreRead (this=0xeefda90) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheReal.cc:450 #6 0x0000003b50423999 in XrdOucCacheRealPRXeq (parg=0xef0f980) at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCacheReal.cc:34 #7 0x0000003b5041be7f in XrdSysThread_Xeq (myargs=<value optimized out>) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.cc:67 #8 0x0000003da6a0673d in start_thread () from /lib64/libpthread.so.0 #9 0x0000003da62d44bd in clone () from /lib64/libc.so.6 The pre-read queue is empty: prFirst = 0 A core file + all RPMs and the executable can be downloaded here: http://eos.cern.ch/rpms/core/ _______________________________________________________ Reply to this item at: <http://savannah.cern.ch/bugs/?93616> _______________________________________________ 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