Skip to content

Commit 6dbc8f0

Browse files
committed
Only refresh metadata if connection fails all dns records
1 parent a25ffae commit 6dbc8f0

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

kafka/client_async.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,6 @@ def __init__(self, **configs):
236236
self._api_versions = None
237237
self._connecting = set()
238238
self._sending = set()
239-
self._refresh_on_disconnects = True
240239

241240
# Not currently used, but data is collected internally
242241
self._last_bootstrap = 0
@@ -382,7 +381,7 @@ def _conn_state_change(self, node_id, sock, conn):
382381
elif self.cluster.is_bootstrap(node_id):
383382
self._bootstrap_fails += 1
384383

385-
elif self._refresh_on_disconnects and not self._closed and not idle_disconnect:
384+
elif conn.connect_failed() and not self._closed and not idle_disconnect:
386385
log.warning("Node %s connection failed -- refreshing metadata", node_id)
387386
self.cluster.request_update()
388387

kafka/conn.py

+4
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,10 @@ def disconnected(self):
850850
"""Return True iff socket is closed"""
851851
return self.state is ConnectionStates.DISCONNECTED
852852

853+
def connect_failed(self):
854+
"""Return True iff connection attempt failed after attempting all dns records"""
855+
return self.disconnected() and self.last_attempt >= 0 and len(self._gai) == 0
856+
853857
def _reset_reconnect_backoff(self):
854858
self._failures = 0
855859
self._reconnect_backoff = self.config['reconnect_backoff_ms'] / 1000.0

0 commit comments

Comments
 (0)