[AIRFLOW-822] Close db before exception

The basehook contains functionality to retrieve
connections from the
database. If a connection does not exist it will
throw an exception.
This exception will be thrown before the
connection to the database
is closed. Therefore the session to the db might
stay open and linger.

Closes #2038 from Fokko/airflow-822


Project: http://git-wip-us.apache.org/repos/asf/incubator-airflow/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-airflow/commit/4b6c389b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-airflow/tree/4b6c389b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-airflow/diff/4b6c389b

Branch: refs/heads/v1-8-test
Commit: 4b6c389b34d0496c8dde86d9b6e5625a53edd93d
Parents: a67e439
Author: Fokko Driesprong <fokkodriespr...@godatadriven.com>
Authored: Tue Jan 31 14:34:01 2017 +0100
Committer: Bolke de Bruin <bo...@xs4all.nl>
Committed: Tue Jan 31 14:34:20 2017 +0100

----------------------------------------------------------------------
 airflow/hooks/base_hook.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-airflow/blob/4b6c389b/airflow/hooks/base_hook.py
----------------------------------------------------------------------
diff --git a/airflow/hooks/base_hook.py b/airflow/hooks/base_hook.py
index e640b63..f5eeb6a 100644
--- a/airflow/hooks/base_hook.py
+++ b/airflow/hooks/base_hook.py
@@ -48,11 +48,11 @@ class BaseHook(object):
             .filter(Connection.conn_id == conn_id)
             .all()
         )
+        session.expunge_all()
+        session.close()
         if not db:
             raise AirflowException(
                 "The conn_id `{0}` isn't defined".format(conn_id))
-        session.expunge_all()
-        session.close()
         return db
 
     @classmethod

Reply via email to