Improve error message when expiring batches in KafkaProducer (#1077)

This commit is contained in:
Dana Powers 2017-05-03 08:08:06 -07:00 committed by GitHub
parent 83617b956d
commit a2b5ddc375

View File

@ -101,15 +101,19 @@ class RecordBatch(object):
since_backoff = now - (self.last_attempt + retry_backoff_ms / 1000.0) since_backoff = now - (self.last_attempt + retry_backoff_ms / 1000.0)
timeout = request_timeout_ms / 1000.0 timeout = request_timeout_ms / 1000.0
if ((not self.in_retry() and is_full and timeout < since_append) or error = None
(not self.in_retry() and timeout < since_ready) or if not self.in_retry() and is_full and timeout < since_append:
(self.in_retry() and timeout < since_backoff)): error = "%d ms has passed since last append" % since_append
elif not self.in_retry() and timeout < since_ready:
error = "%d ms has passed since batch creation plus linger time" % since_ready
elif self.in_retry() and timeout < since_backoff:
error = "%d ms has passed since last attempt plus backoff time" % since_backoff
if error:
self.records.close() self.records.close()
self.done(-1, None, Errors.KafkaTimeoutError( self.done(-1, None, Errors.KafkaTimeoutError(
"Batch containing %s record(s) expired due to timeout while" "Batch for %s containing %s record(s) expired: %s" % (
" requesting metadata from brokers for %s", self.record_count, self.topic_partition, self.record_count, error)))
self.topic_partition))
return True return True
return False return False