diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-06-07 11:52:40 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2019-06-07 11:53:46 -0400 |
commit | 459de143578367c00fb508edeea68eb96531724c (patch) | |
tree | 100314111f683b7cd73d891a2765d6c688bfb1a6 | |
parent | 2f8250f3f747473c8f4258b148f2f7ded0a95084 (diff) | |
download | oslo-db-459de143578367c00fb508edeea68eb96531724c.tar.gz |
Rollback existing nested transacvtion before restarting5.0.1
SQLAlchemy 1.4 will be adding stricter rules to Connection objects
such that a new transaction cannot be started while an old one hasn't
been cleared. Ensure this particular test fixture clears
the "savepoint" transaction first before starting a new one.
References: https://github.com/sqlalchemy/sqlalchemy/issues/4712
Change-Id: Idcb616fd3add4d58f22b91865cec8a54fe492093
-rw-r--r-- | oslo_db/sqlalchemy/utils.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/oslo_db/sqlalchemy/utils.py b/oslo_db/sqlalchemy/utils.py index b54774d..02992f0 100644 --- a/oslo_db/sqlalchemy/utils.py +++ b/oslo_db/sqlalchemy/utils.py @@ -1227,12 +1227,16 @@ class NonCommittingConnectable(object): """ + _nested_trans = None + def __init__(self, connection): self.connection = connection self._trans = connection.begin() self._restart_nested() def _restart_nested(self): + if self._nested_trans is not None: + self._nested_trans.rollback() self._nested_trans = self.connection.begin_nested() def _dispose(self): |