From 226be659105405ab7ea0a28b2e7aff849a7864e7 Mon Sep 17 00:00:00 2001 From: Jason Hu Date: Sat, 9 Mar 2019 12:04:13 -0800 Subject: [PATCH] Only commit if need. (#21848) --- homeassistant/components/recorder/util.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/recorder/util.py b/homeassistant/components/recorder/util.py index 449f910fda9..c96cfe78dd2 100644 --- a/homeassistant/components/recorder/util.py +++ b/homeassistant/components/recorder/util.py @@ -20,12 +20,16 @@ def session_scope(*, hass=None, session=None): if session is None: raise RuntimeError('Session required') + need_rollback = False try: yield session - session.commit() + if session.transaction: + need_rollback = True + session.commit() except Exception as err: # pylint: disable=broad-except _LOGGER.error("Error executing query: %s", err) - session.rollback() + if need_rollback: + session.rollback() raise finally: session.close()