This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author itamarst
Recipients JohanAR, davin, itamarst, python-dev, rhettinger, sbt, tim.peters, zzzeek
Date 2017-04-16.20:44:33
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1492375474.06.0.519938564593.issue14976@psf.upfronthosting.co.za>
In-reply-to
Content
This bug was closed on the basis that signals + threads don't interact well. Which is a good point.

Unfortunately this bug can happen in cases that have nothing to do with signals. If you look at the title and some of the comments it also happens as a result of garbage collection: in `__del__` methods and weakref callbacks.

Specifically, garbage collection can happen on any bytecode boundary and cause reentrancy problems with Queue.

The attached file is an attempt to demonstrate this: it runs and runs until GC happens and then deadlocks for me (on Python 3.6). I.e. it prints GC! and after that no further output is printed and no CPU usage reported.

Please re-open this bug: if you don't want to fix signal case that's fine, but the GC case is still an issue.
History
Date User Action Args
2017-04-16 20:44:34itamarstsetrecipients: + itamarst, tim.peters, rhettinger, zzzeek, python-dev, sbt, JohanAR, davin
2017-04-16 20:44:34itamarstsetmessageid: <1492375474.06.0.519938564593.issue14976@psf.upfronthosting.co.za>
2017-04-16 20:44:34itamarstlinkissue14976 messages
2017-04-16 20:44:33itamarstcreate