From f27061a219ab840ca122dd2e7555312f2a2cf2b7 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Thu, 7 Mar 2024 13:12:10 +0300 Subject: [PATCH] Fixed - continuously reconnecting to a removed slave node in cluster mode. #5547 --- .../java/org/redisson/cluster/ClusterConnectionManager.java | 4 ++-- .../org/redisson/connection/ReplicatedConnectionManager.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index c5e1746e7..8a783c091 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -543,7 +543,7 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { .filter(uri -> !currentPart.getFailedSlaveAddresses().contains(uri)) .forEach(uri -> { currentPart.addFailedSlaveAddress(uri); - if (entry.slaveDown(uri, FreezeReason.MANAGER)) { + if (config.isSlaveNotUsed() || entry.slaveDown(uri, FreezeReason.MANAGER)) { disconnectNode(uri); log.warn("slave: {} has down for slot ranges: {}", uri, currentPart.getSlotRanges()); } @@ -558,7 +558,7 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { for (RedisURI uri : removedSlaves) { currentPart.removeSlaveAddress(uri); - if (entry.slaveDown(uri, FreezeReason.MANAGER)) { + if (config.isSlaveNotUsed() || entry.slaveDown(uri, FreezeReason.MANAGER)) { disconnectNode(uri); log.info("slave {} removed for slot ranges: {}", uri, currentPart.getSlotRanges()); } diff --git a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java index a25189532..bb7f47603 100644 --- a/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/ReplicatedConnectionManager.java @@ -172,7 +172,7 @@ public class ReplicatedConnectionManager extends MasterSlaveConnectionManager { .collect(Collectors.toSet()); for (RedisClient slave : failedSlaves) { - if (entry.slaveDown(slave.getAddr(), FreezeReason.MANAGER)) { + if (config.isSlaveNotUsed() || entry.slaveDown(slave.getAddr(), FreezeReason.MANAGER)) { log.info("slave: {} is down", slave); disconnectNode(new RedisURI(slave.getConfig().getAddress().getScheme(), slave.getAddr().getAddress().getHostAddress(),