diff options
author | Dana Powers <dana.powers@gmail.com> | 2018-02-02 16:36:30 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-02 16:36:30 -0800 |
commit | 618c5051493693c1305aa9f08e8a0583d5fcf0e3 (patch) | |
tree | 3a2fcec8260915a83f19a603671c4a0e5461cca0 /kafka/cluster.py | |
parent | 08a7fb7b754a754c6c64e96d4ba5c4f56cf38a5f (diff) | |
download | kafka-python-618c5051493693c1305aa9f08e8a0583d5fcf0e3.tar.gz |
KAFKA-3949: Avoid race condition when subscription changes during rebalance (#1364)
Diffstat (limited to 'kafka/cluster.py')
-rw-r--r-- | kafka/cluster.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kafka/cluster.py b/kafka/cluster.py index d646fdf..1ab4218 100644 --- a/kafka/cluster.py +++ b/kafka/cluster.py @@ -291,6 +291,13 @@ class ClusterMetadata(object): for listener in self._listeners: listener(self) + if self.need_all_topic_metadata: + # the listener may change the interested topics, + # which could cause another metadata refresh. + # If we have already fetched all topics, however, + # another fetch should be unnecessary. + self._need_update = False + def add_listener(self, listener): """Add a callback function to be called on each metadata update""" self._listeners.add(listener) |