I suspect this is a buildd kernel problem, which we've seen before.
According to the open(2) manpage, its had O_CLOEXEC since kernel 2.6.23,
which if I'm reading http://tinyurl.com/6gds89q correctly should include
hardy (though I don't know if there's some kernel config to control this
which isn't enabled on the buildds).
In any event, what's happening in Python is that
subprocess._create_pipe() is really _posixsubprocess.cloexec_pipe().
That extension module function calls pipe2(2) with the O_CLOEXEC flag.
That says, enable the close-on-exec flag on the file descriptors, so
that they get closed on exec (the default is to not close them). When
the pipe2() call fails and errno is ENOSYS, the kernel is basically
saying that the O_CLOEXEC flag is not a support operation.
My guess is that for newer kernels, this all works just fine, but not
for the kernel used in the build machines. In bug 672209 we were trying
to find out the kernel version for the buildds, but haven't heard back
on that. I think Martin's workaround is appropriate and we just ignore
this until the buildds get updated.
** Changed in: python3.2 (Ubuntu)
Status: New => Invalid
** Changed in: python3.2 (Ubuntu)
Status: Invalid => Won't Fix
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/718784
Title:
Ubuntu buildds throw a lot of RuntimeWarning: pipe2 set errno ENOSYS;
falling back to non-atomic pipe+fcntl
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs