From ee53118dd86bf293b090bd8d50496c816923abe6 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Fri, 31 Jul 2020 08:27:45 +0300 Subject: [PATCH] Fixed - different topics subscribed to the same Redis node in Cluster. --- .../org/redisson/connection/MasterSlaveConnectionManager.java | 2 ++ .../java/org/redisson/pubsub/PublishSubscribeService.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java b/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java index fd4c57a95..877424fc3 100644 --- a/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java +++ b/redisson/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java @@ -586,6 +586,8 @@ public class MasterSlaveConnectionManager implements ConnectionManager { entry.getAllEntries().forEach(e -> entry.nodeDown(e)); entry.masterDown(); entry.shutdownAsync(); + subscribeService.remove(entry); + String slaves = entry.getAllEntries().stream() .filter(e -> !e.getClient().getAddr().equals(entry.getClient().getAddr())) .map(e -> e.getClient().toString()) diff --git a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java index 20f3b06ea..d6f3a4569 100644 --- a/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java +++ b/redisson/src/main/java/org/redisson/pubsub/PublishSubscribeService.java @@ -400,6 +400,10 @@ public class PublishSubscribeService { return result; } + public void remove(MasterSlaveEntry entry) { + freePubSubMap.remove(entry); + } + public RFuture unsubscribe(ChannelName channelName, PubSubType topicType) { if (connectionManager.isShuttingDown()) { return RedissonPromise.newSucceededFuture(null);