Danielhiversen/pyRFXtrx

Closing Network transport blocks on receive_blocking call and does not finish

rhpijnacker opened this issue · 0 comments

Calling close() on the network transport does not finish. This causes rebooting Home Assistant to take forever and polutes the logging:


2022-12-26 08:30:08.572 INFO (MainThread) [homeassistant.components.websocket_api.http.connection] [281472869385936] Connection closed by client
2022-12-26 08:30:08.611 INFO (Recorder) [homeassistant.components.recorder.pool.RecorderPool] Pool recreating
2022-12-26 08:31:48.570 WARNING (MainThread) [homeassistant.core] Timed out waiting for shutdown stage 1 to complete, the shutdown will continue
2022-12-26 08:31:48.823 WARNING (Thread-3) [homeassistant.util.executor] Thread[SyncWorker_1] is still running at shutdown: File "/usr/local/lib/python3.9/threading.py", line 937, in _bootstrap
    self._bootstrap_inner()
  File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 83, in _worker
    work_item.run()
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/workspaces/core.rhp/homeassistant/components/rfxtrx/__init__.py", line 272, in _shutdown_rfxtrx
    rfx_object.close_connection()
  File "/home/vscode/.local/lib/python3.9/site-packages/RFXtrx/__init__.py", line 1020, in close_connection
    self._thread.join()
  File "/usr/local/lib/python3.9/threading.py", line 1060, in join
    self._wait_for_tstate_lock()
  File "/usr/local/lib/python3.9/threading.py", line 1080, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
2022-12-26 08:31:49.812 WARNING (Thread-3) [homeassistant.util.executor] Thread[SyncWorker_1] is still running at shutdown: File "/usr/local/lib/python3.9/threading.py", line 937, in _bootstrap
    self._bootstrap_inner()
  File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 83, in _worker
    work_item.run()
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/workspaces/core.rhp/homeassistant/components/rfxtrx/__init__.py", line 272, in _shutdown_rfxtrx
    rfx_object.close_connection()
  File "/home/vscode/.local/lib/python3.9/site-packages/RFXtrx/__init__.py", line 1020, in close_connection
    self._thread.join()
  File "/usr/local/lib/python3.9/threading.py", line 1060, in join
    self._wait_for_tstate_lock()
  File "/usr/local/lib/python3.9/threading.py", line 1080, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
2022-12-26 08:31:58.817 WARNING (MainThread) [homeassistant.util.executor] Thread[SyncWorker_1] is still running at shutdown: File "/usr/local/lib/python3.9/threading.py", line 937, in _bootstrap
    self._bootstrap_inner()
  File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 83, in _worker
    work_item.run()
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/workspaces/core.rhp/homeassistant/components/rfxtrx/__init__.py", line 272, in _shutdown_rfxtrx
    rfx_object.close_connection()
  File "/home/vscode/.local/lib/python3.9/site-packages/RFXtrx/__init__.py", line 1020, in close_connection
    self._thread.join()
  File "/usr/local/lib/python3.9/threading.py", line 1060, in join
    self._wait_for_tstate_lock()
  File "/usr/local/lib/python3.9/threading.py", line 1080, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
2022-12-26 08:31:59.807 WARNING (MainThread) [homeassistant.util.executor] Thread[SyncWorker_1] is still running at shutdown: File "/usr/local/lib/python3.9/threading.py", line 937, in _bootstrap
    self._bootstrap_inner()
  File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 83, in _worker
    work_item.run()
  File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/workspaces/core.rhp/homeassistant/components/rfxtrx/__init__.py", line 272, in _shutdown_rfxtrx
    rfx_object.close_connection()
  File "/home/vscode/.local/lib/python3.9/site-packages/RFXtrx/__init__.py", line 1020, in close_connection
    self._thread.join()
  File "/usr/local/lib/python3.9/threading.py", line 1060, in join
    self._wait_for_tstate_lock()
  File "/usr/local/lib/python3.9/threading.py", line 1080, in _wait_for_tstate_lock
    if lock.acquire(block, timeout):
Found 2 non-daemonic threads.