From 004111574af426c45810929acefbb3f502908084 Mon Sep 17 00:00:00 2001 From: Clint Armstrong Date: Wed, 9 Sep 2015 09:20:03 -0400 Subject: [PATCH] close cursor after query --- poller-service.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/poller-service.py b/poller-service.py index 41d17efff..b72aaa953 100755 --- a/poller-service.py +++ b/poller-service.py @@ -61,23 +61,25 @@ class DB: self.conn = MySQLdb.connect(host=db_server, port=db_port, user=db_username, passwd=db_password, db=db_dbname) break except (AttributeError, MySQLdb.OperationalError): - log.warning('WARNING: MySQL Error during connect, reconnecting.') + log.warning('WARNING: MySQL Error, reconnecting.') time.sleep(.5) - pass self.conn.autocommit(True) self.conn.ping(True) def query(self, sql): - try: - cursor = self.conn.cursor() - cursor.execute(sql) - except (AttributeError, MySQLdb.OperationalError): - log.warning('WARNING: MySQL Error during query, reconnecting.') - self.connect() - cursor = self.conn.cursor() - cursor.execute(sql) - return cursor + while True: + try: + cursor = self.conn.cursor() + cursor.execute(sql) + ret = cursor.fetchall() + cursor.close() + return ret + except (AttributeError, MySQLdb.OperationalError): + log.warning('WARNING: MySQL Operational Error during query, reconnecting.') + self.connect() + except (AttributeError, MySQLdb.ProgrammingError): + log.warning('WARNING: MySQL Programming Error during query, attempting query again.') def get_config_data():