core: Kodi integration slows down HA restart/shutdown
The problem
When Kodi integration is enabled HA restart (or shutdown) takes a few minutes if there is no connection to kodi. I have this problem for 2-3 months (after moving configuration to UI).
What is version of Home Assistant Core has the issue?
2021.3.3
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant Container
Integration causing the issue
Kodi
Link to integration documentation on our website
https://www.home-assistant.io/integrations/kodi/
Example YAML snippet
No response
Anything in the logs that might be useful for us?
Log:
2021-03-18 15:07:53 WARNING (MainThread) [homeassistant.core] Timed out waiting for shutdown stage 1 to complete, the shutdown will continue
2021-03-18 15:07:59 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:09 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:20 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:30 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:40 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:50 DEBUG (MainThread) [homeassistant.components.kodi.media_player] Unable to connect to Kodi via websocket
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 969, in _wrap_create_connection
return await self._loop.create_connection(*args, **kwargs) # type: ignore # noqa
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1025, in create_connection
raise exceptions[0]
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 1010, in create_connection
sock = await self._connect_sock(
File "/usr/local/lib/python3.8/asyncio/base_events.py", line 924, in _connect_sock
await self.sock_connect(sock, address)
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 496, in sock_connect
return await fut
File "/usr/local/lib/python3.8/asyncio/selector_events.py", line 528, in _sock_connect_cb
raise OSError(err, f'Connect call failed {address}')
TimeoutError: [Errno 110] Connect call failed ('10.10.1.91', 9090)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 63, in ws_connect
self._client = await self._session.ws_connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 754, in _ws_connect
resp = await self.request(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 520, in _request
conn = await self._connector.connect(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 535, in connect
proto = await self._create_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 892, in _create_connection
_, proto = await self._create_direct_connection(req, traces, timeout)
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1051, in _create_direct_connection
raise last_exc
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 1020, in _create_direct_connection
transp, proto = await self._wrap_create_connection(
File "/usr/local/lib/python3.8/site-packages/aiohttp/connector.py", line 975, in _wrap_create_connection
raise client_error(req.connection_key, exc) from exc
aiohttp.client_exceptions.ClientConnectorError: Cannot connect to host lroom-tv.lan:9090 ssl:default [Connect call failed ('10.10.1.91', 9090)]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 135, in connect
await self._ws_server.ws_connect()
File "/usr/local/lib/python3.8/site-packages/jsonrpc_websocket/jsonrpc.py", line 66, in ws_connect
raise TransportError('Error connecting to server', None, exc)
jsonrpc_base.jsonrpc.TransportError: ('Error connecting to server', ClientConnectorError(ConnectionKey(host='lroom-tv.lan', port=9090, is_ssl=False, ssl=None, proxy=None, proxy_auth=None, proxy_headers_hash=4231791446501600363), TimeoutError(110, "Connect call failed ('10.10.1.91', 9090)")))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/kodi/media_player.py", line 409, in _async_ws_connect
await self._connection.connect()
File "/usr/local/lib/python3.8/site-packages/pykodi/kodi.py", line 137, in connect
raise CannotConnectError from error
pykodi.kodi.CannotConnectError
2021-03-18 15:08:53 WARNING (MainThread) [homeassistant.core] Timed out waiting for shutdown stage 2 to complete, the shutdown will continue
Timed out waiting for shutdown stage 3 to complete, the shutdown will continue
I also have an other problem with Kodi: https://github.com/home-assistant/core/issues/38659
About this issue
- Original URL
- State: open
- Created 3 years ago
- Reactions: 5
- Comments: 40 (7 by maintainers)
@balloob Can be done something regarding that? On super fast PC restart is taking super slow because of this integration…
Probably found the cause: see https://github.com/home-assistant/core/issues/73097
Have been setting up home assistant recently and kodi is one of my first integrations. Facing the same issue as well. Since adding kodi integration, ha startup takes a long time… as all my kodi instances are not available when not in use… 😦
I don’t understand how that works, nor how to implement it. Hopefully someone maintaining this integration can come up with a more user-friendly solution.
We can’t be the only people who don’t have Kodi running permanently, and thus have to wait over 2 minutes for home assistant to load.
Must say this has been a long time issue, about year ago removed the Kodi integration only to add it again today. Restart Home Assistant to remind me why I removed it to begin wth. The startup time is ridiculous and is the only reason my HA won’t start in a few seconds, instead it’s around 30x added to the start up time simply because I don’t have the kodi instance up and running, The timeout needs to be shortened or make connection attempts in longer timeouts after startup.
For now, I might have to override the integration with custom docker files but really don’t want to resort to this,
The issue is related to
zeroconf
integration. Sometimes an error appears on restart:Disabling
zeroconf
fixes slow restart/shutdown.UPD: This workaround doesn’t work for me anymore.