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 ncoghlan
Recipients koos.zevenhoven, ncoghlan, rhettinger, serhiy.storchaka
Date 2017-10-19.01:55:30
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1508378131.34.0.213398074469.issue31815@psf.upfronthosting.co.za>
In-reply-to
Content
To put this another way: I see an uninterruptible infinite loop as a data loss bug on par with a segfault, since there's no graceful way to terminate the process and allow cleanup code to run.

For segfaults, we're willing to tolerate them, but we expect the reproducers to involve arcane coding contortions, not simple expressions like "sum(itertools.count())".

Now, the producer side check that Serhiy posted here only addresses part of the problem - there's also the question of making the consumption loops more robust by having them check for signals, and adding a ThreadExit equivalent to allow the interpreter to request shutdown of non-daemon threads other than the main thread.

But as long as we think it's a-OK for us to hang a user's session, causing them to lose all their unsaved/uncached data, then we're going to resist the extra code complexity required to account for these usability concerns. (And I realise they're not new concerns - they're just longstanding problems that folks have gotten used to tolerating and excusing)
History
Date User Action Args
2017-10-19 01:55:31ncoghlansetrecipients: + ncoghlan, rhettinger, serhiy.storchaka, koos.zevenhoven
2017-10-19 01:55:31ncoghlansetmessageid: <1508378131.34.0.213398074469.issue31815@psf.upfronthosting.co.za>
2017-10-19 01:55:31ncoghlanlinkissue31815 messages
2017-10-19 01:55:30ncoghlancreate