From: Gregory P. Smith Date: Sun, 1 Jun 2014 22:15:44 +0000 (-0700) Subject: Attempt to fix the "too many open files" errors on several of the X-Git-Tag: v3.4.2rc1~467 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8fed4deb44da3be1fb70b6b413580445066cb88b;p=python 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. --- diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index 8aa436e8f2..eb5f49cd8f 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1933,13 +1933,15 @@ class POSIXProcessTestCase(BaseTestCase): 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 @@ class POSIXProcessTestCase(BaseTestCase): 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.