blob: fa3e545c6273a05f31e69667eaa45b2b5ee3f301 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
From 2940a4b1830bc2fc6d3f65de4feeec6ea5a49fe5 Mon Sep 17 00:00:00 2001
From: Felix Yan <felixonmars@archlinux.org>
Date: Tue, 21 Feb 2017 11:52:18 -0600
Subject: [PATCH] Don't modify dict size while iterating over it (#676)
This fixes https://github.com/celery/kombu/issues/675.
---
kombu/messaging.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kombu/messaging.py b/kombu/messaging.py
index 03e7e15..e1800b5 100644
--- a/kombu/messaging.py
+++ b/kombu/messaging.py
@@ -397,7 +397,8 @@ def revive(self, channel):
"""Revive consumer after connection loss."""
self._active_tags.clear()
channel = self.channel = maybe_channel(channel)
- for qname, queue in items(self._queues):
+ # modify dict size while iterating over it is not allowed
+ for qname, queue in list(items(self._queues)):
# name may have changed after declare
self._queues.pop(qname, None)
queue = self._queues[queue.name] = queue(self.channel)
|