summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2014-11-20 22:44:37 +0000
committerGerrit Code Review <review@openstack.org>2014-11-20 22:44:37 +0000
commit33636836794287165f4c154c17ff56220c7f43d2 (patch)
tree6f368f863023773c60620458b644371a98aa3474
parentf7489fe52cda57e23863d38b3edeee7f6ba12f7f (diff)
parent2269848495d66ebaceb7c643888d715b9117390c (diff)
downloadoslo-db-33636836794287165f4c154c17ff56220c7f43d2.tar.gz
Merge "Handle Galera deadlock on SELECT FOR UPDATE"
-rw-r--r--oslo/db/sqlalchemy/exc_filters.py2
-rw-r--r--tests/sqlalchemy/test_exc_filters.py7
2 files changed, 9 insertions, 0 deletions
diff --git a/oslo/db/sqlalchemy/exc_filters.py b/oslo/db/sqlalchemy/exc_filters.py
index b3da401..ff6118e 100644
--- a/oslo/db/sqlalchemy/exc_filters.py
+++ b/oslo/db/sqlalchemy/exc_filters.py
@@ -58,6 +58,8 @@ def filters(dbname, exception_type, regex):
# as well as sqlalchemy.exc.DBAPIError, as SQLAlchemy will reraise it
# as this until issue #3075 is fixed.
@filters("mysql", sqla_exc.OperationalError, r"^.*\b1213\b.*Deadlock found.*")
+@filters("mysql", sqla_exc.OperationalError,
+ r"^.*\b1205\b.*Lock wait timeout exceeded.*")
@filters("mysql", sqla_exc.InternalError, r"^.*\b1213\b.*Deadlock found.*")
@filters("postgresql", sqla_exc.OperationalError, r"^.*deadlock detected.*")
@filters("postgresql", sqla_exc.DBAPIError, r"^.*deadlock detected.*")
diff --git a/tests/sqlalchemy/test_exc_filters.py b/tests/sqlalchemy/test_exc_filters.py
index cb3d7ef..34dd991 100644
--- a/tests/sqlalchemy/test_exc_filters.py
+++ b/tests/sqlalchemy/test_exc_filters.py
@@ -491,6 +491,13 @@ class TestDeadlock(TestsExceptionFilter):
"transaction')"
)
+ def test_mysql_mysqldb_galera_deadlock(self):
+ self._run_deadlock_detect_test(
+ "mysql",
+ "(1205, 'Lock wait timeout exceeded; "
+ "try restarting transaction')"
+ )
+
def test_mysql_mysqlconnector_deadlock(self):
self._run_deadlock_detect_test(
"mysql",