summaryrefslogtreecommitdiff
path: root/oslo
diff options
context:
space:
mode:
authorRoman Podoliaka <rpodolyaka@mirantis.com>2014-11-18 15:00:51 +0200
committerRoman Podoliaka <rpodolyaka@mirantis.com>2014-11-18 16:05:01 +0200
commit7f755bf6fedb339f3c8edc334bf31b70f38eda77 (patch)
tree61a1fe90693f5e072286aa5e472f3a704377890a /oslo
parent58cfd8262e3a071b042fadedccfa229633fb3702 (diff)
downloadoslo-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.py3
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: