Exception handling cleanup in BrokerConnection (also catch struct.errors in recv)
This commit is contained in:
@@ -40,7 +40,7 @@ class BrokerConnection(local):
|
|||||||
sock = socket.create_connection((self.host, self.port), self.timeout)
|
sock = socket.create_connection((self.host, self.port), self.timeout)
|
||||||
self._write_fd = sock.makefile('wb')
|
self._write_fd = sock.makefile('wb')
|
||||||
self._read_fd = sock.makefile('rb')
|
self._read_fd = sock.makefile('rb')
|
||||||
except socket.error as e:
|
except socket.error:
|
||||||
log.exception("Error in BrokerConnection.connect()")
|
log.exception("Error in BrokerConnection.connect()")
|
||||||
return None
|
return None
|
||||||
self.in_flight_requests.clear()
|
self.in_flight_requests.clear()
|
||||||
@@ -54,7 +54,7 @@ class BrokerConnection(local):
|
|||||||
try:
|
try:
|
||||||
self._read_fd.close()
|
self._read_fd.close()
|
||||||
self._write_fd.close()
|
self._write_fd.close()
|
||||||
except socket.error as e:
|
except socket.error:
|
||||||
log.exception("Error in BrokerConnection.close()")
|
log.exception("Error in BrokerConnection.close()")
|
||||||
pass
|
pass
|
||||||
self._read_fd = None
|
self._read_fd = None
|
||||||
@@ -74,7 +74,7 @@ class BrokerConnection(local):
|
|||||||
self._write_fd.write(size)
|
self._write_fd.write(size)
|
||||||
self._write_fd.write(message)
|
self._write_fd.write(message)
|
||||||
self._write_fd.flush()
|
self._write_fd.flush()
|
||||||
except socket.error as e:
|
except socket.error:
|
||||||
log.exception("Error in BrokerConnection.send()")
|
log.exception("Error in BrokerConnection.send()")
|
||||||
self.close()
|
self.close()
|
||||||
return None
|
return None
|
||||||
@@ -98,7 +98,7 @@ class BrokerConnection(local):
|
|||||||
if correlation_id != recv_correlation_id:
|
if correlation_id != recv_correlation_id:
|
||||||
raise RuntimeError('Correlation ids do not match!')
|
raise RuntimeError('Correlation ids do not match!')
|
||||||
response = response_type.decode(self._read_fd)
|
response = response_type.decode(self._read_fd)
|
||||||
except (RuntimeError, socket.error) as e:
|
except (RuntimeError, socket.error, struct.error):
|
||||||
log.exception("Error in BrokerConnection.recv()")
|
log.exception("Error in BrokerConnection.recv()")
|
||||||
self.close()
|
self.close()
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user