[issue12105] open() does not able to set flags, such as O_CLOEXEC

STINNER Victor report at bugs.python.org
Mon May 23 14:11:27 CEST 2011


STINNER Victor <victor.stinner at haypocalc.com> added the comment:

> The real issue is that the libc defines O_CLOEXEC, but kernels prior 
> to 2.6.23 don't support it: instead of returning EINVAL, the socket
> syscall silently ignores the flag (don't know why I made the comment
> about this flag being defined to 0...).

This is a kernel bug, not a bug in the GNU libc (ask Ulrich if you are not sure ;-)). An host can have multiple kernel versions (and choose at boot time using GRUB/LILO/...), but it has usually only one C library. You cannot change the version of the libc depending on the kernel.

If you really want to fix this problem, you will have to patch kernel < 2.6.23. Good luck!

Or we can workaround kernel bugs providing a documentation and/or functions for that.

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue12105>
_______________________________________


More information about the Python-bugs-list mailing list