[issue14976] queue.Queue() is not reentrant, so signals and GC can cause deadlocks
mike bayer
report at bugs.python.org
Thu Sep 8 17:59:52 EDT 2016
mike bayer added the comment:
SQLAlchemy suffered from this issue long ago as we use a Queue for connections, which can be collected via weakref callback and sent back to put(), which we observed can occur via gc. For many years (like since 2007 or so) we've packaged a complete copy of Queue.Queue with an RLock inside of it to work around it.
I'm just noticing this issue because I'm writing a new connection pool implementation that tries to deal with this issue a little differently (not using Queue.Queue though).
----------
nosy: +zzzeek
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14976>
_______________________________________
More information about the Python-bugs-list
mailing list