Branch: refs/heads/master Home: https://github.com/xrootd/xrootd Commit: 69cce3755a07459cd2920364c45e7ea97667e1c3 https://github.com/xrootd/xrootd/commit/69cce3755a07459cd2920364c45e7ea97667e1c3 Author: Brian Bockelman <[log in to unmask]> Date: 2016-01-28 (Thu, 28 Jan 2016) Changed paths: M bindings/python/src/PyXRootDFile.cc M bindings/python/src/PyXRootDFileSystem.cc Log Message: ----------- Fix lock inversion in python bindings. When synchronous operations are performed, the python GIL should be dropped using the `async` macro. Otherwise, the following deadlock can occur: a) A python thread, holding the GIL, may call out to a XrdCl::File object, which takes an XRootD-related lock. b) A XrdCl callback thread, holding an XRootD-related lock, tries to invoke a python callback and tries to acquire the GIL. Since the python GIL is not needed to invoke an XrdCl operation, this patch drops it for case (a), avoiding the deadlock. Commit: dd54ab63305af9b7c66083a8f279224d88793da9 https://github.com/xrootd/xrootd/commit/dd54ab63305af9b7c66083a8f279224d88793da9 Author: Brian Bockelman <[log in to unmask]> Date: 2016-01-28 (Thu, 28 Jan 2016) Changed paths: M bindings/python/src/AsyncResponseHandler.hh Log Message: ----------- Check if python interpreter is still initialized. Try to avoid executing our callback if the python interpreter is not initialized. Callbacks can occur after python has been finalized; trying to access the GIL in this case causes undefined behavior. Commit: 37f6a055c0eefc68f7b389f5dea270029d351084 https://github.com/xrootd/xrootd/commit/37f6a055c0eefc68f7b389f5dea270029d351084 Author: simonmichal <[log in to unmask]> Date: 2016-02-01 (Mon, 01 Feb 2016) Changed paths: M bindings/python/src/AsyncResponseHandler.hh M bindings/python/src/PyXRootDFile.cc M bindings/python/src/PyXRootDFileSystem.cc Log Message: ----------- Merge pull request #329 from bbockelm/fix_lock_inversion Fix deadlock due to lock inversion in python bindings. Compare: https://github.com/xrootd/xrootd/compare/bca35b33637b...37f6a055c0ee ######################################################################## 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