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 Mike Pomraning
Recipients Mike Pomraning
Date 2015-12-25.01:15:06
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1451006108.23.0.113868196098.issue25942@psf.upfronthosting.co.za>
In-reply-to
Content
Python 3.3 introduces timeout support in subprocess.call, implemented by sending a SIGKILL if the Popen.wait is interrupted by a TimeoutExpired exception.

However, the "except" clause is too broad, and will, for instance, trigger on a KeyboardInterrupt.  For practical purposes, this means that sending a Ctrl-C to a python program before 3.3 sent a SIGINT to both the parent and subprocess.call()d child, whereas under 3.3+ sends a SIGINT _and_ a SIGKILL to the child.  The child will not be able to clean up appropriately.

For a real world example of this, see http://stackoverflow.com/q/34458583/132382

The fix is, I think, simply changing the clause to "except TimeoutExpired".  At least, that works for me.  See attached patch.
History
Date User Action Args
2015-12-25 01:15:09Mike Pomraningsetrecipients: + Mike Pomraning
2015-12-25 01:15:08Mike Pomraningsetmessageid: <1451006108.23.0.113868196098.issue25942@psf.upfronthosting.co.za>
2015-12-25 01:15:08Mike Pomraninglinkissue25942 messages
2015-12-25 01:15:07Mike Pomraningcreate