From 3743539dbb06e342a60c7fb72f71ae1c77b45226 Mon Sep 17 00:00:00 2001 From: atakavci Date: Fri, 3 Oct 2025 17:17:18 +0300 Subject: [PATCH] fix misleading timing info for failed commands --- .../clients/jedis/scenario/ActiveActiveFailoverTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java b/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java index 59a62ed7e0..7b0c8ee15e 100644 --- a/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java +++ b/src/test/java/redis/clients/jedis/scenario/ActiveActiveFailoverTest.java @@ -13,6 +13,7 @@ import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.mcf.ClusterSwitchEventArgs; import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider; +import redis.clients.jedis.mcf.MultiClusterPooledConnectionProvider.Cluster; import java.io.IOException; import java.time.Duration; @@ -119,6 +120,7 @@ public void accept(ClusterSwitchEventArgs e) { FailoverReporter reporter = new FailoverReporter(); provider.setClusterSwitchListener(reporter); provider.setActiveCluster(endpoint.getHostAndPort(0)); + Cluster cluster1 = provider.getCluster(); UnifiedJedis client = new UnifiedJedis(provider); @@ -136,6 +138,7 @@ public void accept(ClusterSwitchEventArgs e) { int maxTries = 500; int retryingDelay = 5; while (true) { + boolean attempToExecuteOnFailedCluster = false; try { Map executionInfo = new HashMap() { { @@ -143,6 +146,7 @@ public void accept(ClusterSwitchEventArgs e) { put("cluster", reporter.getCurrentClusterName()); } }; + attempToExecuteOnFailedCluster = provider.getCluster() == cluster1; client.xadd("execution_log", StreamEntryID.NEW_ENTRY, executionInfo); executedCommands.incrementAndGet(); @@ -154,7 +158,7 @@ public void accept(ClusterSwitchEventArgs e) { break; } catch (JedisConnectionException e) { - if (reporter.failoverHappened) { + if (reporter.failoverHappened && attempToExecuteOnFailedCluster) { failedCommandsAfterFailover.incrementAndGet(); lastFailedCommandAt.set(Instant.now()); }