Issue 18571: Implementation of the PEP 446: non-inheritable file descriptors (original) (raw)

This issue has been migrated to GitHub: https://github.com/python/cpython/issues/62771

classification

Title: Implementation of the PEP 446: non-inheritable file descriptors
Type: enhancement Stage:
Components: Versions: Python 3.4

process

Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: neologix, python-dev, vstinner
Priority: normal Keywords: patch

Created on 2013-07-27 15:28 by vstinner, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
17211acb65b1.diff vstinner,2013-08-22 22:35 review
ca6217fbec85.diff vstinner,2013-08-27 22:28 review

| Repositories containing patches | | | | | ------------------------------------------------------------------------------------------------------ | | | | | http://hg.python.org/features/pep-446 | | | |

Messages (8)
msg193786 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-07-27 15:47
Implementation of the PEP 446.
msg194917 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-08-12 01:19
+ if (make_inheritable(py_fds_to_keep) < 0) + goto error; + /* errpipe_write is part of py_fds_to_keep. It must be closed at + exec(), but kept open in the child process until exec() is called. */ + if (_Py_set_inheritable((int)errpipe_write, 0, NULL) < 0) + goto error; make_inheritable() should ignore errpipe_write, instead of changing twice the inheritable flag of errpipe_write.
msg195674 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-08-19 21:41
> make_inheritable() should ignore errpipe_write, instead of changing twice the inheritable flag of errpipe_write. Done in the last patch (00df7fc6d2ef.diff).
msg195930 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-08-22 22:55
I tested 17211acb65b1.diff on my x86_64 VMs: Linux: Linux-3.9.4-200.fc18.x86_64-x86_64-with-fedora-18-Spherical_Cow => 358 tests OK. OpenIndiana: Solaris-2.11-i86pc-i386-32bit-ELF => 3 tests failed: test_locale test_tcl test_uuid -- none of these failures are related to the PEP and also occurs in default Mac OS X: Darwin-10.8.0-i386-64bit => 352 tests OK. FreeBSD: FreeBSD-9.1-RELEASE-amd64-64bit-ELF => 351 tests OK. Windows: Windows-7-6.1.7601-SP1 => 329 tests OK So it works on all (tested) platforms ;-)
msg196329 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2013-08-27 23:20
New changeset ef889c3d5dc6 by Victor Stinner in branch 'default': Issue #18571: Implementation of the PEP 446: file descriptors and file handles http://hg.python.org/cpython/rev/ef889c3d5dc6
msg196349 - (view) Author: Charles-François Natali (neologix) * (Python committer) Date: 2013-08-28 05:44
14.1 --- a/Lib/multiprocessing/util.py 14.2 +++ b/Lib/multiprocessing/util.py 14.13 # 14.14 # Return pipe with CLOEXEC set on fds 14.15 # 14.16 +# Deprecated: os.pipe() creates non-inheritable file descriptors 14.17 +# since Python 3.4 14.18 +# 14.19 14.20 def pipe(): 14.21 - import _posixsubprocess 14.22 - return _posixsubprocess.cloexec_pipe() 14.23 + return os.pipe() I guess you could remove util.pipe() altogether: it wasn't part of the public API.
msg196355 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2013-08-28 07:37
> I guess you could remove util.pipe() altogether: it wasn't part of the public API. Ah yes, I wanted to create an issue for that but I forgot. Here you have: issue #18865.
msg196715 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2013-09-01 08:22
New changeset c27527dce71e by Victor Stinner in branch 'default': Issue #18571: Merge duplicate test code http://hg.python.org/cpython/rev/c27527dce71e
History
Date User Action Args
2022-04-11 14:57:48 admin set github: 62771
2013-09-01 08:22:51 python-dev set messages: +
2013-08-28 19:56:42 vstinner link issue17036 superseder
2013-08-28 07:37:39 vstinner set messages: +
2013-08-28 05:44:04 neologix set nosy: + neologixmessages: +
2013-08-27 23:21:14 vstinner set status: open -> closedresolution: fixed
2013-08-27 23:20:54 python-dev set nosy: + python-devmessages: +
2013-08-27 22:28:16 vstinner set files: + ca6217fbec85.diff
2013-08-23 15:37:04 vstinner set files: - 775890a666bf.diff
2013-08-22 22:55:32 vstinner set messages: +
2013-08-22 22:35:14 vstinner set files: + 17211acb65b1.diff
2013-08-22 00:29:44 vstinner set files: - 43697011a273.diff
2013-08-22 00:28:59 vstinner set files: + 775890a666bf.diff
2013-08-21 23:42:43 vstinner set files: - 00df7fc6d2ef.diff
2013-08-21 23:42:40 vstinner set files: - e4e6f45668c7.diff
2013-08-21 23:39:57 vstinner set files: + 43697011a273.diff
2013-08-19 21:41:20 vstinner set messages: +
2013-08-19 21:10:03 vstinner set files: + 00df7fc6d2ef.diff
2013-08-12 01:19:13 vstinner set messages: +
2013-08-12 01:16:32 vstinner set files: - c066794c85cd.diff
2013-08-12 01:11:00 vstinner set files: + e4e6f45668c7.diff
2013-08-12 01:10:10 vstinner set files: - 1f8979a8c2c5.diff
2013-08-12 01:08:13 vstinner set files: + 1f8979a8c2c5.diff
2013-08-09 23:12:10 vstinner set title: Implementation of the PEP 446: non-inheriable file descriptors -> Implementation of the PEP 446: non-inheritable file descriptors
2013-07-28 01:21:34 vstinner set files: - 327133193321.diff
2013-07-28 01:20:03 vstinner set files: + c066794c85cd.diff
2013-07-27 17:52:29 vstinner set files: + 327133193321.diffkeywords: + patch
2013-07-27 15:47:01 vstinner set messages: +
2013-07-27 15:28:59 vstinner set hgrepos: + hgrepo205
2013-07-27 15:28:51 vstinner create