From ebaa5b6eb6680750d242c7abf880b6d6eb4dabad Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Wed, 1 Jun 2016 09:24:53 -0700 Subject: [PATCH] Catch response decode errors and log details --- kafka/conn.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/kafka/conn.py b/kafka/conn.py index cf5dce398..c5d3be1fb 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -507,7 +507,20 @@ def _process_response(self, read_buffer): return None # decode response - response = ifr.response_type.decode(read_buffer) + try: + response = ifr.response_type.decode(read_buffer) + except ValueError: + read_buffer.seek(0) + buf = read_buffer.read() + log.error('%s Response %d [ResponseType: %s Request: %s]:' + ' Unable to decode %d-byte buffer: %r', self, + ifr.correlation_id, ifr.response_type, + ifr.request, len(buf), buf) + ifr.future.failure(Errors.UnknownError('Unable to decode response')) + self.close() + self._processing = False + return None + log.debug('%s Response %d: %s', self, ifr.correlation_id, response) ifr.future.success(response) self._processing = False