Ok, found the culprit. It's here: https://github.com/xrootd/xrootd/blob/master/src/XrdXrootd/XrdXrootdTransit.cc#L418 *If* a stall occurs (you can tweak the `XrdOfsHandle::WaitLock` code to never wait and this causes a stall easily), then the XrdXrootdProtocol object is scheduled to re-run at a later point. It's re-run in that function. However, it doesn't appear to invoke the appropriate callback for `realProt->Process` as in the other overload of `XrdXrootdTransit::Process`, meaning the callback doesn't get pushed until the client itself causes activity (such as disconnecting). -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/xrootd/xrootd/issues/810#issuecomment-416820467 ######################################################################## 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