New submission from STINNER Victor: Ok, I found a way to reproduce the error InvalidStateError in asyncio. I'm not sure that it's the same the error in #21447.
Output of attached bug.py in debug mode: --- Exception in callback Future.set_result(None) handle: <TimerHandle when=79580.878306285 Future.set_result(None)> source_traceback: Object created at (most recent call last): File "/home/haypo/bug.py", line 11, in <module> loop.run_until_complete(task2) File "/home/haypo/prog/python/default/Lib/asyncio/base_events.py", line 239, in run_until_complete self.run_forever() File "/home/haypo/prog/python/default/Lib/asyncio/base_events.py", line 212, in run_forever self._run_once() File "/home/haypo/prog/python/default/Lib/asyncio/base_events.py", line 912, in _run_once handle._run() File "/home/haypo/prog/python/default/Lib/asyncio/events.py", line 96, in _run self._callback(*self._args) File "/home/haypo/prog/python/default/Lib/asyncio/tasks.py", line 241, in _step result = next(coro) File "/home/haypo/prog/python/default/Lib/asyncio/coroutines.py", line 72, in __next__ return next(self.gen) File "/home/haypo/prog/python/default/Lib/asyncio/tasks.py", line 487, in sleep h = future._loop.call_later(delay, future.set_result, result) Traceback (most recent call last): File "/home/haypo/prog/python/default/Lib/asyncio/events.py", line 96, in _run self._callback(*self._args) File "/home/haypo/prog/python/default/Lib/asyncio/futures.py", line 326, in set_result raise InvalidStateError('{}: {!r}'.format(self._state, self)) asyncio.futures.InvalidStateError: CANCELLED: <Future cancelled> --- The fix is to replace the following line of sleep(): --- h = future._loop.call_later(delay, future.set_result, result) --- with: --- def maybe_set_result(future, result): if not future.cancelled(): future.set_result(result) h = future._loop.call_later(delay, maybe_set_result, future, result) --- This generic issue was already discussed there: https://groups.google.com/forum/?fromgroups#!searchin/python-tulip/set_result$20InvalidStateError/python-tulip/T1sxLqjuoVY/YghF-YsgosgJ A patch was also proposed: https://codereview.appspot.com/69870048/ ---------- files: bug.py messages: 221961 nosy: haypo priority: normal severity: normal status: open title: asyncio: Future.set_result() called on cancelled Future raises asyncio.futures.InvalidStateError versions: Python 3.5 Added file: http://bugs.python.org/file35807/bug.py _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue21886> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com