homepage

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.

classification
Title: Implementation of the PEP 433: Easier suppression of file descriptor inheritance
Type: enhancement Stage:
Components: Interpreter Core Versions: Python 3.4
process
Status: closed Resolution: rejected
Dependencies: Superseder: Implementation of the PEP 446: non-inheritable file descriptors
View: 18571
Assigned To: Nosy List: Arfrever, vstinner
Priority: normal Keywords: patch

Created on 2013年01月25日 22:01 by vstinner, last changed 2022年04月11日 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
bc88690df059.patch vstinner, 2013年01月29日 12:54 review
Repositories containing patches
http://hg.python.org/features/pep-433
Messages (10)
msg180630 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月25日 22:01
I create this issue to review and track the implementation of the PEP 433: "Easier suppression of file descriptor inheritance"
http://www.python.org/dev/peps/pep-0433/ 
msg180636 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月26日 01:00
Here is a patch of the latest revision.
configure and Python/importlib.h must be regenerated (are not part of the diff).
msg180637 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月26日 01:51
I tested 9bdfa1a3ea8c.patch on Fedora 16 (Linux 3.6, glibc 2.14), Debian Etch (Linux 2.6.19), OpenBSD 5.2, OpenIndiana, FreeBSD 8.2, Windows 7.
I tested both cases (works/not supported) for O_CLOEXEC and SOCK_CLOEXEC. For the WSA_FLAG_NO_HANDLE_INHERIT flag, I only tested a Windows version not supporting it (Windows 7 SP1 is required).
msg180638 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月26日 01:52
The select module may need more work.
msg180903 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月29日 12:54
New patch:
 - sys.setdefaultcloexec() takes again an argument, so sys.setdefaultcloexec(False) is allowed
 - add cloexec parameter to select.devpoll(), select.kqueue() and select.epoll()
 - when a function accepts a file name and a file descriptor: the cloexec parameter is ignored if the argument is a file descriptor (it was already done for open(), but not for socket.socket on Windows)
 - revert enhancements using cloexec=True to simplify the patch: will be done in another issue
 - fix various bugs in error handling (close newly created file descriptors on error)
 - release the GIL when calling the os: os.urandom(), os.pipe(), os.dup(), etc.
msg180904 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月29日 12:56
My TODO list is almost empty: the implementation is done. I just see possible enhancement on Windows: socket.socket() and os.dup() can use an atomic flag to set close-on-exec if native functions are used (WSASocket, DuplicateHandle) instead of the POSIX API. But it can be done later.
msg180907 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月29日 13:10
"revert enhancements using cloexec=True to simplify the patch: will be done in another issue"
I just created the issue #17070 to track this task.
msg180908 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月29日 13:16
> My TODO list is almost empty
Oh, I forgot one point: I stil don't know if the close-on-exec flag of
file descriptors of pass_fds argument of subprocess.Popen should be
set. If close-on-exec flag is set globally, it's not convinient to
have to clear the flag manually on each file descriptor.
msg180957 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年01月29日 23:10
I tested bc88690df059.patch on Solaris 9: test_os failed on openpty(cloexec=True). It looks like setting close-on-exec on master_fd must be done after grantpt().
msg196411 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013年08月28日 19:56
The PEP 433 was rejected, replaced with the PEP 446.
History
Date User Action Args
2022年04月11日 14:57:40adminsetgithub: 61238
2013年08月28日 19:56:42vstinnersetstatus: open -> closed
superseder: Implementation of the PEP 446: non-inheritable file descriptors
resolution: rejected
messages: + msg196411
2013年07月27日 15:21:43vstinnersetfiles: - ecc10f0afb76.diff
2013年07月27日 15:20:37vstinnersetfiles: + ecc10f0afb76.diff
2013年04月09日 22:15:51vstinnerlinkissue16850 superseder
2013年01月29日 23:10:50vstinnersetmessages: + msg180957
2013年01月29日 13:26:50vstinnersetfiles: - 9bdfa1a3ea8c.patch
2013年01月29日 13:16:17vstinnersetmessages: + msg180908
2013年01月29日 13:10:26vstinnersetmessages: + msg180907
2013年01月29日 12:56:35vstinnersetmessages: + msg180904
2013年01月29日 12:54:36vstinnersetfiles: + bc88690df059.patch

messages: + msg180903
2013年01月26日 03:03:30Arfreversetnosy: + Arfrever
2013年01月26日 01:52:24vstinnersetmessages: + msg180638
2013年01月26日 01:51:47vstinnersetmessages: + msg180637
2013年01月26日 01:00:50vstinnersetfiles: + 9bdfa1a3ea8c.patch

messages: + msg180636
2013年01月26日 00:26:13vstinnersetfiles: - 297b3529876a.diff
2013年01月25日 22:02:40vstinnersetfiles: + 297b3529876a.diff
keywords: + patch
2013年01月25日 22:01:25vstinnercreate

AltStyle によって変換されたページ (->オリジナル) /