Accommodate systems with very large databases and slow disk/cpu (#38947)

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.
pull/38966/head
J. Nick Koston 2020-08-17 02:47:50 -05:00 committed by GitHub
parent 8d8c1335c5
commit ab2b2f6dd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 1 deletions

View File

@ -534,7 +534,15 @@ class Recorder(threading.Thread):
if self.db_url != SQLITE_URL_PREFIX and self.db_url.startswith(
SQLITE_URL_PREFIX
):
validate_or_move_away_sqlite_database(self.db_url)
with self.hass.timeout.freeze(DOMAIN):
#
# Here we run an sqlite3 quick_check. In the majority
# of cases, the quick_check takes under 10 seconds.
#
# On systems with very large databases and
# very slow disk or cpus, this can take a while.
#
validate_or_move_away_sqlite_database(self.db_url)
if self.engine is not None:
self.engine.dispose()