Skip to content

qasync is getting stuck in an infinite loop after an uncaught exception #22

Open
@hartytp

Description

@hartytp

Summary

When closing an application after an uncaught exception in user code, qasync is getting stuck in an infinite loop at

del self.__callbacks[timerid]
due to an unhandled KeyError in a finally block.

NB the line numbers in the traceback below don't match master since I'm a few commits behind (one of the commits added some whitespace).

Full traceback is:

ERROR<8>:qasync._QEventLoop:Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
  File "...\lib\asyncio\events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "...\asyncio\proactor_events.py", line 162, in _call_connection_lost
    self._sock.shutdown(socket.SHUT_RDWR)
OSError: [WinError 10038] An operation was attempted on something that is not a socket
ERROR<8>:qasync._QEventLoop:Exception in callback _ProactorBasePipeTransport._call_connection_lost(None)
handle: <Handle _ProactorBasePipeTransport._call_connection_lost(None)>
Traceback (most recent call last):
  File "...lib\asyncio\events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "...\lib\asyncio\proactor_events.py", line 162, in _call_connection_lost
    self._sock.shutdown(socket.SHUT_RDWR)
OSError: [WinError 10038] An operation was attempted on something that is not a socket
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 262, in timerEvent
  File "...\lib\asyncio\events.py", line 81, in _run
    self._context.run(self._callback, *self._args)
  File "...\lib\asyncio\proactor_events.py", line 299, in _loop_reading
    self._read_fut = self._loop._proactor.recv(self._sock, 32768)
  File "...\wand\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\_windows.py", line 79, in recv
KeyboardInterrupt
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent
KeyError: 15
Traceback (most recent call last):
  File "...\lib\site-packages\qasync-0.11.0-py3.9.egg\qasync\__init__.py", line 264, in timerEvent

Metadata

Metadata

Assignees

No one assigned

    Labels

    need reproNeeds minimal, reproducible example

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions