Skip to content

Commit e1a63c4

Browse files
pierreglaservstinner
authored andcommitted
bpo-37244: Fix test_multiprocessing.test_resource_tracker() (GH-14288)
Increase robustness of test_resource_tracker(): retry for 60 seconds.
1 parent 594d9b9 commit e1a63c4

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

Lib/test/_test_multiprocessing.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5010,12 +5010,21 @@ def create_and_register_resource(rtype):
50105010
_resource_unlink(name1, rtype)
50115011
p.terminate()
50125012
p.wait()
5013-
time.sleep(2.0)
5014-
with self.assertRaises(OSError) as ctx:
5015-
_resource_unlink(name2, rtype)
5016-
# docs say it should be ENOENT, but OSX seems to give EINVAL
5017-
self.assertIn(
5018-
ctx.exception.errno, (errno.ENOENT, errno.EINVAL))
5013+
5014+
deadline = time.monotonic() + 60
5015+
while time.monotonic() < deadline:
5016+
time.sleep(.5)
5017+
try:
5018+
_resource_unlink(name2, rtype)
5019+
except OSError as e:
5020+
# docs say it should be ENOENT, but OSX seems to give
5021+
# EINVAL
5022+
self.assertIn(e.errno, (errno.ENOENT, errno.EINVAL))
5023+
break
5024+
else:
5025+
raise AssertionError(
5026+
f"A {rtype} resource was leaked after a process was "
5027+
f"abruptly terminated.")
50195028
err = p.stderr.read().decode('utf-8')
50205029
p.stderr.close()
50215030
expected = ('resource_tracker: There appear to be 2 leaked {} '

0 commit comments

Comments
 (0)