Message371478
I was able to replicate the failure locally by running the large number of jobs in parallel. We typically use this to test for tricky race conditions, to simulate maximum load:
[aeros:~/repos/cpython]$ ./python -m test test_asyncio.test_sock_lowlevel --match test_sock_client_racing -j100 -F -v
# [snip]
======================================================================
ERROR: test_sock_client_racing (test.test_asyncio.test_sock_lowlevel.EPollEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/test/test_asyncio/test_sock_lowlevel.py", line 200, in _basetest_sock_send_racing
await self.loop.sock_sendall(sock, b'world')
File "/home/aeros/repos/cpython/Lib/asyncio/selector_events.py", line 460, in sock_sendall
return await fut
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/asyncio/tasks.py", line 507, in wait_for
fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/test/test_asyncio/test_sock_lowlevel.py", line 256, in test_sock_client_racing
self.loop.run_until_complete(asyncio.wait_for(
File "/home/aeros/repos/cpython/Lib/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/aeros/repos/cpython/Lib/asyncio/tasks.py", line 509, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError
======================================================================
ERROR: test_sock_client_racing (test.test_asyncio.test_sock_lowlevel.PollEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/test/test_asyncio/test_sock_lowlevel.py", line 200, in _basetest_sock_send_racing
await self.loop.sock_sendall(sock, b'world')
File "/home/aeros/repos/cpython/Lib/asyncio/selector_events.py", line 460, in sock_sendall
return await fut
asyncio.exceptions.CancelledError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/asyncio/tasks.py", line 507, in wait_for
fut.result()
asyncio.exceptions.CancelledError
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/test/test_asyncio/test_sock_lowlevel.py", line 256, in test_sock_client_racing
self.loop.run_until_complete(asyncio.wait_for(
File "/home/aeros/repos/cpython/Lib/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/aeros/repos/cpython/Lib/asyncio/tasks.py", line 509, in wait_for
raise exceptions.TimeoutError() from exc
asyncio.exceptions.TimeoutError
======================================================================
ERROR: test_sock_client_racing (test.test_asyncio.test_sock_lowlevel.SelectEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/aeros/repos/cpython/Lib/test/test_asyncio/test_sock_lowlevel.py", line 256, in test_sock_client_racing
self.loop.run_until_complete(asyncio.wait_for(
File "/home/aeros/repos/cpython/Lib/asyncio/base_events.py", line 629, in run_until_complete
self.run_forever()
File "/home/aeros/repos/cpython/Lib/asyncio/base_events.py", line 596, in run_forever
self._run_once()
File "/home/aeros/repos/cpython/Lib/asyncio/base_events.py", line 1854, in _run_once
event_list = self._selector.select(timeout)
File "/home/aeros/repos/cpython/Lib/selectors.py", line 323, in select
r, w, _ = self._select(self._readers, self._writers, [], timeout)
OSError: [Errno 9] Bad file descriptor
I'll try to add some debug lugs to find the source of the failure(s). This one might be a bit tricky to assess though.
@Fantix I'd recommend trying to run the local test with the above command, and increasing the parallel job count until it occurs. If it takes more than a minute or two for the tests to run, slowly lower the number. At the moment, the failure has only occurred once in the buildbots, but we might need to temporarily disable it if it occurs repeatedly or find some form of workaround (as it will potentially mask other bugs). |
|
Date |
User |
Action |
Args |
2020-06-14 00:17:46 | aeros | set | recipients:
+ aeros, vstinner, fantix, ned.deily, asvetlov, abacabadabacaba, lukasz.langa, yselivanov, achimnol, miss-islington |
2020-06-14 00:17:45 | aeros | set | messageid: <1592093865.92.0.408773761662.issue30064@roundup.psfhosted.org> |
2020-06-14 00:17:45 | aeros | link | issue30064 messages |
2020-06-14 00:17:45 | aeros | create | |
|