summaryrefslogtreecommitdiff
path: root/kafka/conn.py
diff options
context:
space:
mode:
Diffstat (limited to 'kafka/conn.py')
-rw-r--r--kafka/conn.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/kafka/conn.py b/kafka/conn.py
index 805476e..2e37ecf 100644
--- a/kafka/conn.py
+++ b/kafka/conn.py
@@ -85,16 +85,20 @@ class KafkaConnection(local):
self.reinit()
while bytes_left:
+
try:
data = self._sock.recv(min(bytes_left, 4096))
+
+ # Receiving empty string from recv signals
+ # that the socket is in error. we will never get
+ # more data from this socket
+ if data == '':
+ raise socket.error('Not enough data to read message -- did server kill socket?')
+
except socket.error:
log.exception('Unable to receive data from Kafka')
self._raise_connection_error()
- if data == '':
- log.error("Not enough data to read this response")
- self._raise_connection_error()
-
bytes_left -= len(data)
log.debug("Read %d/%d bytes from Kafka", num_bytes - bytes_left, num_bytes)
responses.append(data)