Martin Panter added the comment:

I found a relatively recent case of this failing on a buildbot:

http://buildbot.python.org/all/builders/AMD64%20FreeBSD%209.x%203.x/builds/4339/steps/test/logs/stdio
== CPython 3.6.0a1+ (default:eaee5aed6fbc, May 27 2016, 05:52:21) [GCC 4.2.1 
20070831 patched [FreeBSD]]
0:19:34 [401/401/1] test_io crashed
Timeout (0:15:00)!
Thread 0x0000000801807400 (most recent call first):
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd9/build/Lib/test/test_io.py", line 
3808 in check_interrupted_write_retry
  File 
"/usr/home/buildbot/python/3.x.koobs-freebsd9/build/Lib/test/test_io.py", line 
3834 in test_interrupted_write_retry_text

Line 3808 is the write() call, so it could be hanging if the second signal is 
delivered just before Python makes the write() syscall. Perhaps it might help 
to use setitimer() so that even if a signal is delivered at an inconvenient 
moment, the write() call will still be interrupted by a later signal, and read 
thread will still be spawned.

Also see Issue 22331 for an idea to avoid the EBADF hack.

----------
keywords: +buildbot
nosy: +martin.panter
versions: +Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue23680>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to