From 61f1c8d9631bab1a4236eee405c5b0b03e8be22e Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Wed, 3 Jul 2024 19:17:52 +0200 Subject: [PATCH] Fix leak of SQLAlchemy engine objects in recorder (#121085) --- homeassistant/components/recorder/core.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/homeassistant/components/recorder/core.py b/homeassistant/components/recorder/core.py index 9715d9e9f10..98a5aea4a57 100644 --- a/homeassistant/components/recorder/core.py +++ b/homeassistant/components/recorder/core.py @@ -960,6 +960,7 @@ class Recorder(threading.Thread): tries += 1 if tries <= self.db_max_retries: + self._close_connection() time.sleep(self.db_retry_wait) return False @@ -1452,6 +1453,7 @@ class Recorder(threading.Thread): if self._using_file_sqlite: validate_or_move_away_sqlite_database(self.db_url) + assert not self.engine self.engine = create_engine(self.db_url, **kwargs, future=True) self._dialect_name = try_parse_enum(SupportedDialect, self.engine.dialect.name) self.__dict__.pop("dialect_name", None)