STINNER Victor added the comment: Ok, I'm now quite sure that it's a bug in the FreeBSD kernel or in the BSD C library.
The C library ignores EINTR: if the close() syscalls fails with EINTR, the C close() function returns a success. When the close() syscall fails with EINTR, the test hangs. It's unclear to me if the close() syscall fails with EINTR in the parent or in the child process. I'm quite sure that the FreeBSD truss tool (tool to trace syscalls) has bugs too, so it's hard to be sure what happens exactly. Attached tarball eintr_bug.tar.gz reproduces the bug in a program written in pure C language. So it's not a bug in Python. For test_eintr, we should skip the test on FreeBSD (until the bug is fixed in FreeBSD). ---------- Added file: http://bugs.python.org/file40485/eintr_bug.tar.gz _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue25122> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com