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 vstinner
Recipients python-dev, vstinner
Date 2015-09-16.22:06:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1442441208.42.0.85385620089.issue25122@psf.upfronthosting.co.za>
In-reply-to
Content
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).
History
Date User Action Args
2015-09-16 22:06:48vstinnersetrecipients: + vstinner, python-dev
2015-09-16 22:06:48vstinnersetmessageid: <1442441208.42.0.85385620089.issue25122@psf.upfronthosting.co.za>
2015-09-16 22:06:48vstinnerlinkissue25122 messages
2015-09-16 22:06:48vstinnercreate