On startup we run an sqlite3 quick_check to verify the database
integrity. In the majority of cases, the quick_check takes under
10 seconds.
On systems with very large databases and very slow disk/cpu,
this can take much longer so we freeze the timeout.
* Update __init__.py
Further fixes for HC3 compatibility.
* Update homeassistant/components/fibaro/__init__.py
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* handle PlatformNotReady
* set timeout in bridge
* set timeout in test
* Revert "handle PlatformNotReady"
This reverts commit 118ee06ba016f88abdf767efdf4ef1eacb4e5caa.
With this change, we should still be able to startup
in under 10 minutes if something really goes wrong.
The testing done in #38661 was used to determine
these values.
If a device on the network presented a bad name, zeroconf
would throw zeroconf.BadTypeInNameException and the service
browser would die off. We now trap the exception and continue.
The default on python 3.8 is for max_workers is significantly
lower than the default on python 3.7 which means we can get starved
for workers.
To determine a reasonable maximum, the maximum was increased to large
number on 5 production instances.
The number of worker threads created during startup that were
needed to avoid waiting for a thread:
HOU 1 - 71
HOU 2 - 48
OGG 1 - 60
OGG 2 - 68
OGG 3 - 64
This lead to a selection of 64 as it was reliable in all cases
and did not have a significant memory impact
* Review: if not to pop
* Review: async_add_job --> async_add_executor_job
* Review: const
* Review: start logging messages with capital letter
* Review : UTC isoformated time --> fix "Invalid date""
* Fix hail forecast condition
* Review: _show_setup_form is a callback
* Fix update option
* Review: no icon for next_rain
* Review: inline cities form
* Review: store places as an instance attribute
* UNDO_UPDATE_LISTENER()
```
2020-08-07 22:38:10 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection.3903193064] local variable 'response' referenced before assignment
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/rest_command/__init__.py", line 115, in async_service_handler
async with getattr(websession, method)(
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 1012, in __aenter__
self._resp = await self._coro
File "/usr/local/lib/python3.8/site-packages/aiohttp/client.py", line 582, in _request
break
File "/usr/local/lib/python3.8/site-packages/aiohttp/helpers.py", line 586, in __exit__
raise asyncio.TimeoutError from None
asyncio.exceptions.TimeoutError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 125, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1281, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1316, in _execute_service
await handler.func(service_call)
File "/usr/src/homeassistant/homeassistant/components/rest_command/__init__.py", line 137, in async_service_handler
_LOGGER.warning("Timeout call %s", response.url, exc_info=1)
UnboundLocalError: local variable 'response' referenced before assignment
```