From 26e3abb9d71efd49b32a60ccb872e554a272cf69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20K=C3=A1cha?= <ph@cesnet.cz> Date: Fri, 23 Jun 2017 15:56:59 +0200 Subject: [PATCH] (Hopefully) more robust database reconnection --- warden3/warden_server/warden_server.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py index fa279b7..bed5b60 100755 --- a/warden3/warden_server/warden_server.py +++ b/warden3/warden_server/warden_server.py @@ -527,6 +527,8 @@ class MySQL(ObjectBase): crs = kwargs.pop("crs", None) while True: try: + if self.con is None: + self.connect() if crs is None: crs = self.con.cursor() self.log.debug("execute: %s %s" % (args, kwargs)) @@ -540,9 +542,16 @@ class MySQL(ObjectBase): self.log.info("execute: Database down, trying to reconnect (%d attempts left)..." % countdown) if countdown<self.retry_count: sleep(self.retry_pause) # no need to melt down server on longer outage - self.close() - self.connect() + try: + crs.close() + except Exception: + pass + try: + self.close() + except Exception: + pass crs = None + self.con = None countdown -= 1 -- GitLab