diff options
author | Victor Sergeyev <vsergeyev@mirantis.com> | 2015-01-27 19:15:50 +0200 |
---|---|---|
committer | Victor Sergeyev <vsergeyev@mirantis.com> | 2015-01-28 13:35:16 +0200 |
commit | f4a77dc0c13f4bb9e45298412d0b36bc476b2afd (patch) | |
tree | dfb86467e44fc5602ab7a327df81b1265e7eb193 | |
parent | 32359046d9d135b95d3fa573f4996e8d65594cb0 (diff) | |
download | oslo-db-f4a77dc0c13f4bb9e45298412d0b36bc476b2afd.tar.gz |
Ensure that create_engine() close test connection
handle_connect_error() open and return a test connection, but nobody
uses it in create_engine(), so (depending on Python interpreter) this
connection can stay opened in the pool for some time.
Co-Authored-By: Roman Podoliaka <rpodolyaka@mirantis.com>
Change-Id: Ibef07f0fa1fec61aa10963c07c410a731d7758ef
-rw-r--r-- | oslo_db/sqlalchemy/session.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/oslo_db/sqlalchemy/session.py b/oslo_db/sqlalchemy/session.py index 7e33075..57c8fc5 100644 --- a/oslo_db/sqlalchemy/session.py +++ b/oslo_db/sqlalchemy/session.py @@ -408,7 +408,11 @@ def create_engine(sql_connection, sqlite_fk=False, mysql_sql_mode=None, compat.engine_connect(engine, _connect_ping_listener) # initial connect + test - _test_connection(engine, max_retries, retry_interval) + # NOTE(viktors): the current implementation of _test_connection() + # does nothing, if max_retries == 0, so we can skip it + if max_retries: + test_conn = _test_connection(engine, max_retries, retry_interval) + test_conn.close() return engine |