diff options
Diffstat (limited to 'kafka/conn.py')
-rw-r--r-- | kafka/conn.py | 12 |
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) |