test_stress_creation_and_deletion leaks file descriptors
- Dominant language
- Python
- Stars
- 1.7k
- Forks
- 778
- Avg merge
- 2h 50m
- Merged PRs (30d)
- 3
Description
This test fails when run repeatedly:
py.test distributed/tests/test_stress.py::test_stress_creation_and_deletion
It seems to leak a large number of file descriptors
```python
Traceback (most recent call last):
File "/home/mrocklin/workspace/tornado/tornado/ioloop.py", line 605, in _run_callback
ret = callback()
File "/home/mrocklin/workspace/tornado/tornado/stack_context.py", line 277, in null_wrapper
return fn(*args, **kwargs)
File "/home/mrocklin/workspace/tornado/tornado/ioloop.py", line 626, in _discard_future_result
future.result()
File "/home/mrocklin/workspace/tornado/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "", line 4, in raise_exc_info
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1069, in run
yielded = self.gen.send(value)
File "/home/mrocklin/workspace/distributed/distributed/nanny.py", line 159, in _start
assert self.worker_address
AssertionError
tornado.application - ERROR - Exception in callback functools.partial(.null_wrapper at 0x7f7d1c6e4840>, )
Traceback (most recent call last):
File "/home/mrocklin/workspace/distributed/distributed/utils_test.py", line 656, in test_func
result = loop.run_sync(lambda: cor(*args), timeout=timeout)
File "/home/mrocklin/workspace/tornado/tornado/ioloop.py", line 458, in run_sync
return future_cell[0].result()
File "/home/mrocklin/workspace/tornado/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "", line 4, in raise_exc_info
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/home/mrocklin/workspace/distributed/distributed/tests/test_stress.py", line 105, in test_stress_creation_and_deletion
range(10)]))
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1055, in run
value = future.result()
File "/home/mrocklin/workspace/tornado/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "", line 4, in raise_exc_info
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1063, in run
yielded = self.gen.throw(*exc_info)
File "/home/mrocklin/workspace/distributed/distributed/utils.py", line 199, in All
result = yield tasks.next()
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1055, in run
value = future.result()
File "/home/mrocklin/workspace/tornado/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "", line 4, in raise_exc_info
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1069, in run
yielded = self.gen.send(value)
File "/home/mrocklin/workspace/distributed/distributed/tests/test_stress.py", line 95, in create_and_destroy_worker
n = Nanny(s.ip, s.port, ncores=2, loop=s.loop)
File "/home/mrocklin/workspace/distributed/distributed/nanny.py", line 98, in __init__
**kwargs)
File "/home/mrocklin/workspace/distributed/distributed/node.py", line 37, in __init__
deserialize=deserialize, io_loop=self.io_loop)
File "/home/mrocklin/workspace/distributed/distributed/core.py", line 95, in __init__
self.monitor = SystemMonitor()
File "/home/mrocklin/workspace/distributed/distributed/system_monitor.py", line 12, in __init__
self.proc = psutil.Process()
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/__init__.py", line 381, in __init__
self._init(pid)
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/__init__.py", line 408, in _init
self.create_time()
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/__init__.py", line 734, in create_time
self._create_time = self._proc.create_time()
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/_pslinux.py", line 1332, in wrapper
return fun(self, *args, **kwargs)
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/_pslinux.py", line 1506, in create_time
values = self._parse_stat_file()
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/_common.py", line 313, in wrapper
return fun(self)
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/_pslinux.py", line 1367, in _parse_stat_file
with open_binary("%s/%s/stat" % (self._procfs_path, self.pid)) as f:
File "/home/mrocklin/Software/anaconda/lib/python3.6/site-packages/psutil/_pslinux.py", line 190, in open_binary
return open(fname, "rb", **kwargs)
OSError: [Errno 24] Too many open files: '/proc/2016/stat'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/mrocklin/workspace/tornado/tornado/ioloop.py", line 605, in _run_callback
ret = callback()
File "/home/mrocklin/workspace/tornado/tornado/stack_context.py", line 277, in null_wrapper
return fn(*args, **kwargs)
File "/home/mrocklin/workspace/tornado/tornado/ioloop.py", line 626, in _discard_future_result
future.result()
File "/home/mrocklin/workspace/tornado/tornado/concurrent.py", line 238, in result
raise_exc_info(self._exc_info)
File "", line 4, in raise_exc_info
File "/home/mrocklin/workspace/tornado/tornado/gen.py", line 1069, in run
yielded = self.gen.send(value)
File "/home/mrocklin/workspace/distributed/distributed/nanny.py", line 159, in _start
assert self.worker_address
AssertionError
```
Contributor guide
Assessment
This issue has not been assessed yet.