Skip to content

Commit e4991cd

Browse files
committed
add finally block to the __do_query method
-add socket.close() to the finally block of the __do_query method, for the case the query ends up in an Exception -modify timeout from 60 to 30 -log OSError exception
1 parent 7e2c09d commit e4991cd

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

source/queryHandler/QueryHandler.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ def __do_query(self, data):
460460
endstr = b'.\n'
461461
try:
462462
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
463-
sock.settimeout(60)
463+
sock.settimeout(30)
464464
sock.connect((self.remote_ip, self.port))
465465
if sys.version >= '3':
466466
data = bytes(data, 'UTF-8')
@@ -482,13 +482,19 @@ def __do_query(self, data):
482482
chunks.append(chunk)
483483
except socket.timeout as e:
484484
self.logger.error(e)
485+
msg = None
486+
except OSError as e:
487+
self.logger.error(e)
488+
msg = None
485489
except Exception as e:
486490
self.logger.error(e)
487-
return None
488-
if msg.startswith('Error'):
489-
self.logger.error('QueryHandler: query returned no data: {0}'.format(msg))
490-
return None
491-
return msg
491+
msg = None
492+
finally:
493+
sock.close()
494+
if msg and msg.startswith('Error'):
495+
self.logger.error('QueryHandler: query returned no data: {0}'.format(msg))
496+
msg = None
497+
return msg
492498

493499
def getTopology(self, ignoreMetrics=False):
494500
'''

0 commit comments

Comments
 (0)