From 1baa0fa266aa8e1b90e12b3cca3fa9fd140175b2 Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Thu, 8 Mar 2018 13:14:11 -0500 Subject: [PATCH 1/2] Only increase reconnect backoff if all addrinfos have been tried --- kafka/conn.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kafka/conn.py b/kafka/conn.py index d778c3189..ddbe042f6 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -629,6 +629,9 @@ def _reset_reconnect_backoff(self): self._reconnect_backoff = self.config['reconnect_backoff_ms'] / 1000.0 def _update_reconnect_backoff(self): + # Do not mark as failure if there are more dns entries available to try + if len(self._gai) > 0: + return if self.config['reconnect_backoff_max_ms'] > self.config['reconnect_backoff_ms']: self._failures += 1 self._reconnect_backoff = self.config['reconnect_backoff_ms'] * 2 ** (self._failures - 1) From a1769522f9c4f37324f4156e6d48529a2e8db77a Mon Sep 17 00:00:00 2001 From: Dana Powers Date: Fri, 9 Mar 2018 10:22:24 -0500 Subject: [PATCH 2/2] Initialize gai to empty list --- kafka/conn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kafka/conn.py b/kafka/conn.py index ddbe042f6..1d0d9f59d 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -257,7 +257,7 @@ def __init__(self, host, port, afi, **configs): self._ssl_context = self.config['ssl_context'] self._sasl_auth_future = None self.last_attempt = 0 - self._gai = None + self._gai = [] self._sensors = None if self.config['metrics']: self._sensors = BrokerConnectionMetrics(self.config['metrics'],