diff options
author | Roman Podoliaka <rpodolyaka@mirantis.com> | 2014-11-18 15:00:51 +0200 |
---|---|---|
committer | Roman Podoliaka <rpodolyaka@mirantis.com> | 2014-11-18 16:05:01 +0200 |
commit | 7f755bf6fedb339f3c8edc334bf31b70f38eda77 (patch) | |
tree | 61a1fe90693f5e072286aa5e472f3a704377890a /oslo | |
parent | 58cfd8262e3a071b042fadedccfa229633fb3702 (diff) | |
download | oslo-db-7f755bf6fedb339f3c8edc334bf31b70f38eda77.tar.gz |
Ensure is_backend_avail() doesn't leave open connections
is_backend_avail() helper function calls _ensure_backenv_available()
method,which creates a SQLAlchemy engine and opens a test connection,
but doesn't call engine.dispose(). Depending on Python interpreter
version used, the connection in the pool may remain open for some
time (even though, we don't store a reference to an Engine instance).
Closes-Bug: #1393633
Co-Authored-By: Victor Sergeyev <vsergeyev@mirantis.com>
Change-Id: I0297af709ed18fed52308500c13054cb49adf401
Diffstat (limited to 'oslo')
-rw-r--r-- | oslo/db/sqlalchemy/utils.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/oslo/db/sqlalchemy/utils.py b/oslo/db/sqlalchemy/utils.py index ccac7cd..dd891b6 100644 --- a/oslo/db/sqlalchemy/utils.py +++ b/oslo/db/sqlalchemy/utils.py @@ -683,7 +683,8 @@ def is_backend_avail(backend, database, user=None, passwd=None): user=user, passwd=passwd) try: - provision.Backend._ensure_backend_available(connect_uri) + eng = provision.Backend._ensure_backend_available(connect_uri) + eng.dispose() except exception.BackendNotAvailable: return False else: |