Skip to content

Commit e13c42b

Browse files
authored
Prevent RuntimeError while reinitializing clusters - sync and async (#3633)
* Prevent RuntimeError while reinitializing clusters - sync and async * Applying copilot's review comments
1 parent 010d8fe commit e13c42b

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

redis/asyncio/cluster.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1313,7 +1313,9 @@ async def initialize(self) -> None:
13131313
startup_nodes_reachable = False
13141314
fully_covered = False
13151315
exception = None
1316-
for startup_node in self.startup_nodes.values():
1316+
# Convert to tuple to prevent RuntimeError if self.startup_nodes
1317+
# is modified during iteration
1318+
for startup_node in tuple(self.startup_nodes.values()):
13171319
try:
13181320
# Make sure cluster mode is enabled on this node
13191321
try:

redis/cluster.py

+3-1
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)