gurumitts / pylutron-caseta

Apache License 2.0
153 stars 98 forks source link

Fix reconnect race #150

Closed bdraco closed 11 months ago

bdraco commented 11 months ago

Reconnects could fail because the monitor loop would fail due to a request already being done

2023-09-26 08:10:57.188 CRITICAL (MainThread) [pylutron_caseta.smartbridge] monitor loop has exited
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/pylutron_caseta/smartbridge.py", line 484, in _monitor
    await self._monitor_once()
  File "/usr/local/lib/python3.11/site-packages/pylutron_caseta/smartbridge.py", line 536, in _monitor_once
    self._leap.close()
  File "/usr/local/lib/python3.11/site-packages/pylutron_caseta/leap.py", line 169, in close
    request.set_exception(BridgeDisconnectedError())
asyncio.exceptions.InvalidStateError: invalid state

fixes https://github.com/home-assistant/core/issues/100958#issuecomment-1736207797

bdraco commented 11 months ago

Thanks. Would you mind pushing a release when you get a chance?