Commit 8fed4deb authored by Gregory P. Smith's avatar Gregory P. Smith

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.
parent ffd529cd
...@@ -1933,13 +1933,15 @@ class POSIXProcessTestCase(BaseTestCase): ...@@ -1933,13 +1933,15 @@ class POSIXProcessTestCase(BaseTestCase):
open_fds = set() open_fds = set()
# Add a bunch more fds to pass down. # Add a bunch more fds to pass down.
for _ in range(10): for _ in range(40):
fd = os.open("/dev/null", os.O_RDONLY) fd = os.open("/dev/null", os.O_RDONLY)
open_fds.add(fd) open_fds.add(fd)
# Leave a two pairs of low ones available for use by the # Leave a two pairs of low ones available for use by the
# internal child error pipe and the stdout pipe. # 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) os.close(fd)
open_fds.remove(fd) open_fds.remove(fd)
...@@ -1952,8 +1954,8 @@ class POSIXProcessTestCase(BaseTestCase): ...@@ -1952,8 +1954,8 @@ class POSIXProcessTestCase(BaseTestCase):
import resource import resource
rlim_cur, rlim_max = resource.getrlimit(resource.RLIMIT_NOFILE) rlim_cur, rlim_max = resource.getrlimit(resource.RLIMIT_NOFILE)
try: try:
# 9 is lower than the highest fds we are leaving open. # 29 is lower than the highest fds we are leaving open.
resource.setrlimit(resource.RLIMIT_NOFILE, (9, rlim_max)) resource.setrlimit(resource.RLIMIT_NOFILE, (29, rlim_max))
# Launch a new Python interpreter with our low fd rlim_cur that # Launch a new Python interpreter with our low fd rlim_cur that
# inherits open fds above that limit. It then uses subprocess # inherits open fds above that limit. It then uses subprocess
# with close_fds=True to get a report of open fds in the child. # with close_fds=True to get a report of open fds in the child.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment