diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py index fa279b7abccdc7fb198de8b7906c79aa1fb61aae..bed5b60e37fc9e90c92414f628ab5b633902571f 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