diff --git a/redis/asyncio/cluster.py b/redis/asyncio/cluster.py index b066a100f6..6044edc23a 100644 --- a/redis/asyncio/cluster.py +++ b/redis/asyncio/cluster.py @@ -1313,7 +1313,9 @@ async def initialize(self) -> None: startup_nodes_reachable = False fully_covered = False exception = None - for startup_node in self.startup_nodes.values(): + # Convert to tuple to prevent RuntimeError if self.startup_nodes + # is modified during iteration + for startup_node in tuple(self.startup_nodes.values()): try: # Make sure cluster mode is enabled on this node try: diff --git a/redis/cluster.py b/redis/cluster.py index 99e5c37f9d..6e3505404a 100644 --- a/redis/cluster.py +++ b/redis/cluster.py @@ -1674,7 +1674,9 @@ def initialize(self): fully_covered = False kwargs = self.connection_kwargs exception = None - for startup_node in self.startup_nodes.values(): + # Convert to tuple to prevent RuntimeError if self.startup_nodes + # is modified during iteration + for startup_node in tuple(self.startup_nodes.values()): try: if startup_node.redis_connection: r = startup_node.redis_connection