You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
asyncio: bug in _ProactorBasePipeTransport._force_close() #79863
Running ProactorEventLoopTests.test_sendfile_close_peer_in_the_middle_of_receiving() logs a bug in _force_close(): see logs below. Extract of _force_close():
bpo-32622: Native sendfile on windows (bpo-5565)
* Support sendfile on Windows Proactor event loop naively.
Logs:
vstinner@WIN C:\vstinner\python\master>python -X dev -m test test_asyncio -m test.test_asyncio.test_sendfile.ProactorEventLoopTests.test_sendfile_close_peer_in_the_middle_of_receiving
Running Debug|x64 interpreter...
Run tests sequentially
0:00:00 [1/1] test_asyncio
Exception in callback _ProactorReadPipeTransport._loop_reading(<_OverlappedF...events.py:452>)
handle: <Handle _ProactorReadPipeTransport._loop_reading(<_OverlappedF...events.py:452>) created at C:\vstinner\python\master\lib\asyncio\windows_events.py:82>source_traceback: Object created at (most recent call last):
File "C:\vstinner\python\master\lib\test\test_asyncio\test_sendfile.py", line 125, in run_loopreturnself.loop.run_until_complete(coro)
File "C:\vstinner\python\master\lib\asyncio\base_events.py", line 576, in run_until_completeself.run_forever()
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 315, in run_foreversuper().run_forever()
File "C:\vstinner\python\master\lib\asyncio\base_events.py", line 544, in run_foreverself._run_once()
File "C:\vstinner\python\master\lib\asyncio\base_events.py", line 1729, in _run_once
event_list =self._selector.select(timeout)
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 421, in selectself._poll(timeout)
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 750, in _poll
f.set_exception(e)
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 82, in set_exceptionsuper().set_exception(exception)
Traceback (most recent call last):
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 444, in finish_recvreturn ov.getresult()
OSError: [WinError 64] The specified network name is no longer available
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\vstinner\python\master\lib\asyncio\proactor_events.py", line 256, in _loop_reading
data = fut.result()
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 748, in _poll
value = callback(transferred, key, ov)
File "C:\vstinner\python\master\lib\asyncio\windows_events.py", line 448, in finish_recvraiseConnectionResetError(*exc.args)
ConnectionResetError: [WinError 64] The specified network name is no longer available
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\vstinner\python\master\lib\asyncio\events.py", line 81, in _runself._context.run(self._callback, *self._args)
File "C:\vstinner\python\master\lib\asyncio\proactor_events.py", line 283, in _loop_readingself._force_close(exc)
File "C:\vstinner\python\master\lib\asyncio\proactor_events.py", line 118, in _force_closeself._empty_waiter.set_exception(exc)
asyncio.exceptions.InvalidStateError: invalid state
Activity
vstinner commentedon Jan 8, 2019
Running ProactorEventLoopTests.test_sendfile_close_peer_in_the_middle_of_receiving() logs a bug in _force_close(): see logs below. Extract of _force_close():
Problem: _empty_waiter can be already done. For example, it can be created directly as done:
Attached PR fixes _force_close(): do nothing if _empty_waiter is already done.
The regression comes from the following change:
commit a19fb3c
Author: Andrew Svetlov <andrew.svetlov@gmail.com>
Date: Sun Feb 25 19:32:14 2018 +0300
Logs:
== Tests result: SUCCESS ==
1 test OK.
Total duration: 531 ms
Tests result: SUCCESS
vstinner commentedon Jan 8, 2019
New changeset 80fda71 by Victor Stinner in branch 'master':
bpo-35682: Fix _ProactorBasePipeTransport._force_close() (GH-11462)
80fda71
miss-islington commentedon Jan 8, 2019
New changeset 88bd26a by Miss Islington (bot) in branch '3.7':
bpo-35682: Fix _ProactorBasePipeTransport._force_close() (GH-11462)
88bd26a