From ae227eb3b9adb430cf6aa5a4f46f846e964fff91 Mon Sep 17 00:00:00 2001 From: Pierre-Samuel Le Stang Date: Fri, 8 Feb 2019 16:46:21 +0100 Subject: exc_filters: fix deadlock detection for MariaDB/Galera cluster MariasDB/Galera cluster server produces an error like: (1213, u'Deadlock: wsrep aborted transaction') which is currently not detected properly and, thus, not retried. Change-Id: Ifb4a81d50e490e734e12986e51efd6bd3c339c31 Signed-off-by: Pierre-Samuel Le Stang --- oslo_db/sqlalchemy/exc_filters.py | 2 ++ oslo_db/tests/sqlalchemy/test_exc_filters.py | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/oslo_db/sqlalchemy/exc_filters.py b/oslo_db/sqlalchemy/exc_filters.py index 65b0319..0144826 100644 --- a/oslo_db/sqlalchemy/exc_filters.py +++ b/oslo_db/sqlalchemy/exc_filters.py @@ -63,6 +63,8 @@ def filters(dbname, exception_type, regex): @filters("mysql", sqla_exc.InternalError, r"^.*\b1213\b.*Deadlock found.*") @filters("mysql", sqla_exc.InternalError, r"^.*\b1213\b.*detected deadlock/conflict.*") +@filters("mysql", sqla_exc.InternalError, + r"^.*\b1213\b.*Deadlock: wsrep aborted.*") @filters("postgresql", sqla_exc.OperationalError, r"^.*deadlock detected.*") @filters("postgresql", sqla_exc.DBAPIError, r"^.*deadlock detected.*") @filters("ibm_db_sa", sqla_exc.DBAPIError, r"^.*SQL0911N.*") diff --git a/oslo_db/tests/sqlalchemy/test_exc_filters.py b/oslo_db/tests/sqlalchemy/test_exc_filters.py index 208a40a..c844fcd 100644 --- a/oslo_db/tests/sqlalchemy/test_exc_filters.py +++ b/oslo_db/tests/sqlalchemy/test_exc_filters.py @@ -995,6 +995,12 @@ class TestDeadlock(TestsExceptionFilter): orig_exception_cls=self.InternalError ) + self._run_deadlock_detect_test( + "mysql", + "(1213, 'Deadlock: wsrep aborted transaction')", + orig_exception_cls=self.InternalError + ) + def test_mysql_pymysql_galera_deadlock(self): self._run_deadlock_detect_test( "mysql", -- cgit v1.2.1