Branch: refs/heads/master Home: https://github.com/xrootd/xrootd Commit: b9273dd701c82d2a4c07793b73c2cd7ddab0604e https://github.com/xrootd/xrootd/commit/b9273dd701c82d2a4c07793b73c2cd7ddab0604e Author: Brian Bockelman <[log in to unmask]> Date: 2015-07-05 (Sun, 05 Jul 2015) Changed paths: M src/XrdCl/XrdClStream.cc Log Message: ----------- Release Stream lock before invoking callbacks. #216 OnReadTimeout will call OnError with the Stream's lock held. This causes OnError to invoke the user's callback with the Stream lock held, possibly causing a lock ordering issue. This fixes an observed deadlock within CMSSW over the following objects: Thread 1 FileStateHandler::VectorRead takes FileStateHandler lock Stream::Send tries to take Stream lock Thread 5 FileTimer::Run takes FileTimer lock FileStateHandler::Tick tries to take FileStateHandler Thread 6 Stream::OnReadTimeout takes Stream lock DelayedClose::HandleResponseWithHosts (this is callback code in CMSSW); this deletes a File object, which eventually calls FileTimer::UnRegisterFileObject tries to take FileTimer lock Commit: bf3bfd69a3b6374baeadeb3d1636396813d2d5d7 https://github.com/xrootd/xrootd/commit/bf3bfd69a3b6374baeadeb3d1636396813d2d5d7 Author: simonmichal <[log in to unmask]> Date: 2015-07-09 (Thu, 09 Jul 2015) Changed paths: M src/XrdCl/XrdClStream.cc Log Message: ----------- Merge pull request #247 from bbockelm/unlock_stream Release Stream lock before invoking callbacks. #216 Compare: https://github.com/xrootd/xrootd/compare/f9dd88d347c2...bf3bfd69a3b6 ######################################################################## 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