Print

Print


The XrdOfsTPCAuth code deadlocks for expired TPC transfers for which the client probably went away. I have the complete gdb trace but below is the thread responsible to taking the lock and never releasing it. The rest of the 1000+ threads dealing with TPC transfers are blocked while acquiring the mutex.

Thread 1093 (Thread 0x7f6def411700 (LWP 7666)):
#0 sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1 0x0000003def035079 in Wait (this=0x7f6b78014270, retVal=-1, eValue=13, eText=0x3def4a1d25 "tpc authorization expired", Path=0x7f6b78025060 "[log in to unmask]") at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.hh:345
#2 XrdOucCallBack::Reply (this=0x7f6b78014270, retVal=-1, eValue=13, eText=0x3def4a1d25 "tpc authorization expired", Path=0x7f6b78025060 "[log in to unmask]") at /usr/src/debug/xrootd/xrootd/src/XrdOuc/XrdOucCallBack.cc:95
#3 0x0000003def46eb66 in XrdOfsTPCInfo::Reply (this=0x7f6b78024fa8, rC=, eC=, eMsg=, mP=) at /usr/src/debug/xrootd/xrootd/src/XrdOfs/XrdOfsTPCInfo.cc:108
#4 0x0000003def46deb8 in XrdOfsTPCAuth::Expired (this=0x7f6b78024fa0, Dst=0x3def4a1d87 "localhost", cnt=0) at /usr/src/debug/xrootd/xrootd/src/XrdOfs/XrdOfsTPCAuth.cc:153
#5 0x0000003def46e004 in XrdOfsTPCAuth::RunTTL (Init=) at /usr/src/debug/xrootd/xrootd/src/XrdOfs/XrdOfsTPCAuth.cc:278
#6 0x0000003def46e0fb in XrdOfsTPCAuthttl (pp=) at /usr/src/debug/xrootd/xrootd/src/XrdOfs/XrdOfsTPCAuth.cc:62
#7 0x0000003def0263af in XrdSysThread_Xeq (myargs=0x21f1b60) at /usr/src/debug/xrootd/xrootd/src/XrdSys/XrdSysPthread.cc:86
#8 0x000000336cc07a51 in start_thread (arg=0x7f6def411700) at pthread_create.c:301
#9 0x000000336c8e89ad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115


Reply to this email directly or view it on GitHub.



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