From 5697f1ab9c4006d8b932067d84dd03a4f7775895 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 28 Jan 2019 18:43:40 +0100 Subject: [PATCH] [FIX] runbot: terminate all active queries before dropping database The docker using this database may still be alive. --- runbot/models/build.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/runbot/models/build.py b/runbot/models/build.py index 25f5a154..ac8c3617 100644 --- a/runbot/models/build.py +++ b/runbot/models/build.py @@ -612,6 +612,9 @@ class runbot_build(models.Model): def _local_pg_dropdb(self, dbname): with local_pgadmin_cursor() as local_cr: + pid_col = 'pid' if local_cr._cnx.server_version >= 90200 else 'procpid' + query = 'SELECT pg_terminate_backend({}) FROM pg_stat_activity WHERE datname=%s'.format(pid_col) + local_cr.execute(query, [dbname]) local_cr.execute('DROP DATABASE IF EXISTS "%s"' % dbname) # cleanup filestore datadir = appdirs.user_data_dir()