From c51285ea85a95940bffd4fbfc0fe8ca55cba1275 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 27 Jul 2024 09:19:11 -0500 Subject: [PATCH] Handle waiter already done in zeroconf service info fixes ``` Apr 28 12:25:23 homeassistant homeassistant[557]: 2024-04-28 07:25:23.034 ERROR (MainThread) [homeassistant] Error doing job: Exception in callback ZeroconfController._async_resolve_later(MSS425F-15cc...p._tcp.local., AsyncServiceI...ce_index=None)) Apr 28 12:25:23 homeassistant homeassistant[557]: Traceback (most recent call last): Apr 28 12:25:23 homeassistant homeassistant[557]: File "/usr/local/lib/python3.11/asyncio/events.py", line 80, in _run Apr 28 12:25:23 homeassistant homeassistant[557]: self._context.run(self._callback, *self._args) Apr 28 12:25:23 homeassistant homeassistant[557]: File "/usr/local/lib/python3.11/site-packages/aiohomekit/zeroconf.py", line 300, in _async_resolve_later Apr 28 12:25:23 homeassistant homeassistant[557]: self._async_handle_loaded_service_info(info) Apr 28 12:25:23 homeassistant homeassistant[557]: File "/usr/local/lib/python3.11/site-packages/aiohomekit/zeroconf.py", line 395, in _async_handle_loaded_service_info Apr 28 12:25:23 homeassistant homeassistant[557]: waiter.set_result(discovery) Apr 28 12:25:23 homeassistant homeassistant[557]: asyncio.exceptions.InvalidStateError: invalid state ``` --- aiohomekit/zeroconf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aiohomekit/zeroconf.py b/aiohomekit/zeroconf.py index 1a5f17de..d026844b 100644 --- a/aiohomekit/zeroconf.py +++ b/aiohomekit/zeroconf.py @@ -390,7 +390,7 @@ def _async_handle_loaded_service_info(self, info: AsyncServiceInfo) -> None: if waiters := self._waiters.pop(description.id, None): for waiter in waiters: - if not waiter.cancelled(): + if not waiter.cancelled() and not waiter.done(): waiter.set_result(discovery) @abstractmethod