Message256973
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. |
|
Date |
User |
Action |
Args |
2015-12-25 01:15:09 | Mike Pomraning | set | recipients:
+ Mike Pomraning |
2015-12-25 01:15:08 | Mike Pomraning | set | messageid: <1451006108.23.0.113868196098.issue25942@psf.upfronthosting.co.za> |
2015-12-25 01:15:08 | Mike Pomraning | link | issue25942 messages |
2015-12-25 01:15:07 | Mike Pomraning | create | |
|