Skip to content

Commit f3dfbd4

Browse files
committed
Prevent RuntimeError while reinitializing clusters - sync and async (redis#3633)
* Prevent RuntimeError while reinitializing clusters - sync and async * Applying copilot's review comments
1 parent fa3067d commit f3dfbd4

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

redis/asyncio/cluster.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1326,7 +1326,9 @@ async def initialize(self) -> None:
13261326
startup_nodes_reachable = False
13271327
fully_covered = False
13281328
exception = None
1329-
for startup_node in self.startup_nodes.values():
1329+
# Convert to tuple to prevent RuntimeError if self.startup_nodes
1330+
# is modified during iteration
1331+
for startup_node in tuple(self.startup_nodes.values()):
13301332
try:
13311333
# Make sure cluster mode is enabled on this node
13321334
try:

redis/cluster.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1674,7 +1674,9 @@ def initialize(self):
16741674
fully_covered = False
16751675
kwargs = self.connection_kwargs
16761676
exception = None
1677-
for startup_node in self.startup_nodes.values():
1677+
# Convert to tuple to prevent RuntimeError if self.startup_nodes
1678+
# is modified during iteration
1679+
for startup_node in tuple(self.startup_nodes.values()):
16781680
try:
16791681
if startup_node.redis_connection:
16801682
r = startup_node.redis_connection

0 commit comments

Comments
 (0)