summaryrefslogtreecommitdiff
path: root/kafka/conn.py
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2018-03-09 11:25:36 -0500
committerGitHub <noreply@github.com>2018-03-09 11:25:36 -0500
commit1974dc19c5eac1527b99bae8e348557abe5cdcd2 (patch)
tree438c8d9250b2bc8f08fe3cda5e1fd688c637ef2c /kafka/conn.py
parent5446d1832c07f436cb306b2d27e8d74b6906b363 (diff)
downloadkafka-python-1974dc19c5eac1527b99bae8e348557abe5cdcd2.tar.gz
Only increase reconnect backoff if all addrinfos have been tried (#1423)
Diffstat (limited to 'kafka/conn.py')
-rw-r--r--kafka/conn.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/kafka/conn.py b/kafka/conn.py
index bfaed6a..c2ac28e 100644
--- a/kafka/conn.py
+++ b/kafka/conn.py
@@ -264,7 +264,7 @@ class BrokerConnection(object):
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'],
@@ -638,6 +638,9 @@ class BrokerConnection(object):
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)