summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Powers <dana.powers@gmail.com>2016-08-04 20:09:13 -0700
committerGitHub <noreply@github.com>2016-08-04 20:09:13 -0700
commitf6d216856f044de7b54450e00858190bc6dafc4f (patch)
tree19e8c92392cff6bf739999525bab8ddcf0d2805b
parentd3d3ad8b74613cc3d0a1134fdcf4ab7d959657a6 (diff)
downloadkafka-python-f6d216856f044de7b54450e00858190bc6dafc4f.tar.gz
Drain pending requests to the coordinator before initiating group rejoin (#798)
-rw-r--r--kafka/coordinator/base.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/kafka/coordinator/base.py b/kafka/coordinator/base.py
index e147b6f..5f60aa3 100644
--- a/kafka/coordinator/base.py
+++ b/kafka/coordinator/base.py
@@ -242,6 +242,14 @@ class BaseCoordinator(object):
while self.need_rejoin():
self.ensure_coordinator_known()
+ # ensure that there are no pending requests to the coordinator.
+ # This is important in particular to avoid resending a pending
+ # JoinGroup request.
+ if self._client.in_flight_request_count(self.coordinator_id):
+ while self._client.in_flight_request_count(self.coordinator_id):
+ self._client.poll()
+ continue
+
future = self._send_join_group_request()
self._client.poll(future=future)