summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTosi Émeric <emeric254@users.noreply.github.com>2018-12-27 01:40:30 +0100
committerTaras Voinarovskyi <voyn1991@gmail.com>2018-12-27 09:40:30 +0900
commit807ac8244cd39ca8426cfeda245ec27802c0a600 (patch)
treea68efaf8f83c8c59d3ca2d62446395cfd5dd2a23
parent7aa997f7205c116582b3d5f354cff3c7eac89ad2 (diff)
downloadkafka-python-807ac8244cd39ca8426cfeda245ec27802c0a600.tar.gz
#1681 add copy() in metrics() to avoid thread safety issues (#1682)
-rw-r--r--kafka/consumer/group.py4
-rw-r--r--kafka/producer/kafka.py4
2 files changed, 4 insertions, 4 deletions
diff --git a/kafka/consumer/group.py b/kafka/consumer/group.py
index 8727de7..699b02b 100644
--- a/kafka/consumer/group.py
+++ b/kafka/consumer/group.py
@@ -903,10 +903,10 @@ class KafkaConsumer(six.Iterator):
releases without warning.
"""
if raw:
- return self._metrics.metrics
+ return self._metrics.metrics.copy()
metrics = {}
- for k, v in six.iteritems(self._metrics.metrics):
+ for k, v in six.iteritems(self._metrics.metrics.copy()):
if k.group not in metrics:
metrics[k.group] = {}
if k.name not in metrics[k.group]:
diff --git a/kafka/producer/kafka.py b/kafka/producer/kafka.py
index 685c3f9..ccdd91a 100644
--- a/kafka/producer/kafka.py
+++ b/kafka/producer/kafka.py
@@ -716,10 +716,10 @@ class KafkaProducer(object):
releases without warning.
"""
if raw:
- return self._metrics.metrics
+ return self._metrics.metrics.copy()
metrics = {}
- for k, v in six.iteritems(self._metrics.metrics):
+ for k, v in six.iteritems(self._metrics.metrics.copy()):
if k.group not in metrics:
metrics[k.group] = {}
if k.name not in metrics[k.group]: