[Python-checkins] peps: PEP 446: Issues: add examples in other projects

victor.stinner python-checkins at python.org
Sat Aug 10 01:05:13 CEST 2013


http://hg.python.org/peps/rev/ba6ad5dd0fba
changeset:   5043:ba6ad5dd0fba
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Sat Aug 10 01:00:07 2013 +0200
summary:
  PEP 446: Issues: add examples in other projects

files:
  pep-0446.txt |  41 +++++++++++++++++++++++++++++++++++----
  1 files changed, 36 insertions(+), 5 deletions(-)


diff --git a/pep-0446.txt b/pep-0446.txt
--- a/pep-0446.txt
+++ b/pep-0446.txt
@@ -128,7 +128,7 @@
 processes are not noticed, because they don't cause major bugs. It does
 not mean that these bugs must not be fixed.
 
-Two examples of common issues with inherited file descriptors:
+Two common issues with inherited file descriptors:
 
 * On Windows, a directory cannot be removed before all file handles open
   in the directory are closed. The same issue can be seen with files,
@@ -153,6 +153,30 @@
 socket, a child process can accept new connections to read sensitive
 data.
 
+Example of issues in open source projects:
+
+* `Mozilla (Firefox) <https://bugzilla.mozilla.org/show_bug.cgi?id=147659>`_:
+  open since 2002-05
+* `dbus library <https://bugs.freedesktop.org/show_bug.cgi?id=15947>`_:
+  fixed in 2008-05 (`dbus commit
+  <http://cgit.freedesktop.org/dbus/dbus/commit/?id=e2bc7232069b14b7299cb8b2eab436f60a232007>`_),
+  close file descriptors in the child process
+* `autofs <https://bugzilla.redhat.com/show_bug.cgi?id=390591>`_:
+  fixed in 2009-02, set the CLOEXEC flag
+* `qemu <https://bugzilla.redhat.com/show_bug.cgi?id=528134>`_:
+  fixed in 2009-12 (`qemu commit
+  <http://git.qemu.org/?p=qemu.git;a=commit;h=40ff6d7e8dceca227e7f8a3e8e0d58b2c66d19b4>`_),
+  set CLOEXEC flag
+* `Tor <https://trac.torproject.org/projects/tor/ticket/2029>`_:
+  fixed in 2010-12, set CLOEXEC flag
+* `OCaml <http://caml.inria.fr/mantis/view.php?id=5256>`_: open since
+  2011-04, "PR#5256: Processes opened using Unix.open_process* inherit
+  all opened file descriptors (including sockets)"
+* `ØMQ <https://zeromq.jira.com/browse/LIBZMQ-408>`_:
+  open since 2012-08
+* `Squid <https://bugzilla.redhat.com/show_bug.cgi?id=837033>`_:
+  open since 2012-07
+
 
 Issues fixed in the subprocess module
 -------------------------------------
@@ -327,8 +351,13 @@
 ``/proc/<PID>/fd/``, and so performances depends on the number of open
 file descriptors, not on MAXFD.
 
-See also the `issue #1663329: subprocess close_fds perform poor if
-SC_OPEN_MAX is high <http://bugs.python.org/issue1663329>`_.
+See also:
+
+* `Python issue #1663329 <http://bugs.python.org/issue1663329>`_:
+  subprocess close_fds perform poor if ``SC_OPEN_MAX`` is high
+* `Squid Bug #837033 <https://bugzilla.redhat.com/show_bug.cgi?id=837033>`_:
+  Squid should set CLOEXEC on opened FDs. "32k+ close() calls in each
+  child process take a long time ([12-56] seconds) in Xen PV guests."
 
 
 Proposal
@@ -425,8 +454,8 @@
 descriptors non-inheritable by default: since Go 1.0 (2009), Perl 1.0
 (1987) and Ruby 2.0 (2013).
 
-The SCons project overrides builtin functions ``file()`` and ``open()``
-to make files non-inheritable on Windows:
+The SCons project, written in Python, overrides builtin functions
+``file()`` and ``open()`` to make files non-inheritable on Windows:
 see `win32.py
 <https://bitbucket.org/scons/scons/src/c8dbbaa4598e7119ae80f72068386be105b5ad98/src/engine/SCons/Platform/win32.py?at=default#cl-68>`_.
 
@@ -508,6 +537,8 @@
 * `Ghosts of Unix past, part 2: Conflated designs
   <http://lwn.net/Articles/412131/>`_ (Neil Brown, 2010) explains the
   history of ``O_CLOEXEC`` and ``O_NONBLOCK`` flags
+* `File descriptor handling changes in 2.6.27
+  <http://lwn.net/Articles/292843/>`_
 
 
 Copyright

-- 
Repository URL: http://hg.python.org/peps


More information about the Python-checkins mailing list