[Python-checkins] cpython (3.4): Attempt to fix the "too many open files" errors on several of the

gregory.p.smith python-checkins at python.org
Mon Jun 2 00:16:25 CEST 2014


http://hg.python.org/cpython/rev/72211640519e
changeset:   90952:72211640519e
branch:      3.4
parent:      90950:784bd2c37d52
user:        Gregory P. Smith <greg at krypto.org>
date:        Sun Jun 01 15:15:44 2014 -0700
summary:
  Attempt to fix the "too many open files" errors on several of the
buildbots that the new test_close_fds_when_max_fd_is_lowered test causes.
It now leaves 10 more low fd's available.

files:
  Lib/test/test_subprocess.py |  10 ++++++----
  1 files changed, 6 insertions(+), 4 deletions(-)


diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -1933,13 +1933,15 @@
 
         open_fds = set()
         # Add a bunch more fds to pass down.
-        for _ in range(10):
+        for _ in range(40):
             fd = os.open("/dev/null", os.O_RDONLY)
             open_fds.add(fd)
 
         # Leave a two pairs of low ones available for use by the
         # internal child error pipe and the stdout pipe.
-        for fd in sorted(open_fds)[:4]:
+        # We also leave 10 more open as some Python buildbots run into
+        # "too many open files" errors during the test if we do not.
+        for fd in sorted(open_fds)[:14]:
             os.close(fd)
             open_fds.remove(fd)
 
@@ -1952,8 +1954,8 @@
         import resource
         rlim_cur, rlim_max = resource.getrlimit(resource.RLIMIT_NOFILE)
         try:
-            # 9 is lower than the highest fds we are leaving open.
-            resource.setrlimit(resource.RLIMIT_NOFILE, (9, rlim_max))
+            # 29 is lower than the highest fds we are leaving open.
+            resource.setrlimit(resource.RLIMIT_NOFILE, (29, rlim_max))
             # Launch a new Python interpreter with our low fd rlim_cur that
             # inherits open fds above that limit.  It then uses subprocess
             # with close_fds=True to get a report of open fds in the child.

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


More information about the Python-checkins mailing list