diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-11-20 22:44:37 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-11-20 22:44:37 +0000 |
commit | 33636836794287165f4c154c17ff56220c7f43d2 (patch) | |
tree | 6f368f863023773c60620458b644371a98aa3474 | |
parent | f7489fe52cda57e23863d38b3edeee7f6ba12f7f (diff) | |
parent | 2269848495d66ebaceb7c643888d715b9117390c (diff) | |
download | oslo-db-33636836794287165f4c154c17ff56220c7f43d2.tar.gz |
Merge "Handle Galera deadlock on SELECT FOR UPDATE"
-rw-r--r-- | oslo/db/sqlalchemy/exc_filters.py | 2 | ||||
-rw-r--r-- | tests/sqlalchemy/test_exc_filters.py | 7 |
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", |