You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sz...@apache.org on 2024/08/22 18:35:45 UTC

(ratis) 17/25: RATIS-2115. Fix flaky RetryCacheTests and InstallSnapshotFromLeaderTests. (#1129)

This is an automated email from the ASF dual-hosted git repository.

szetszwo pushed a commit to branch branch-3.1.1_review
in repository https://gitbox.apache.org/repos/asf/ratis.git

commit 58327e26ce691058e1efb6bb15e2c374aaefc957
Author: Tsz-Wo Nicholas Sze <sz...@apache.org>
AuthorDate: Mon Aug 12 09:21:29 2024 -0700

    RATIS-2115. Fix flaky RetryCacheTests and InstallSnapshotFromLeaderTests. (#1129)
---
 .../test/java/org/apache/ratis/InstallSnapshotFromLeaderTests.java | 7 ++++++-
 ratis-server/src/test/java/org/apache/ratis/RetryCacheTests.java   | 6 +++---
 ...InstallSnapshot.java => TestLeaderInstallSnapshotWithGrpc.java} | 4 ++--
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/ratis-server/src/test/java/org/apache/ratis/InstallSnapshotFromLeaderTests.java b/ratis-server/src/test/java/org/apache/ratis/InstallSnapshotFromLeaderTests.java
index 16a335324..ba6bca5b5 100644
--- a/ratis-server/src/test/java/org/apache/ratis/InstallSnapshotFromLeaderTests.java
+++ b/ratis-server/src/test/java/org/apache/ratis/InstallSnapshotFromLeaderTests.java
@@ -23,7 +23,9 @@ import org.apache.ratis.protocol.RaftClientReply;
 import org.apache.ratis.protocol.RaftGroupId;
 import org.apache.ratis.protocol.RaftPeer;
 import org.apache.ratis.protocol.RaftPeerId;
+import org.apache.ratis.protocol.exceptions.RaftException;
 import org.apache.ratis.protocol.exceptions.RaftRetryFailureException;
+import org.apache.ratis.protocol.exceptions.ReconfigurationTimeoutException;
 import org.apache.ratis.retry.RetryPolicies;
 import org.apache.ratis.server.RaftServer;
 import org.apache.ratis.server.RaftServerConfigKeys;
@@ -162,8 +164,11 @@ public abstract class InstallSnapshotFromLeaderTests<CLUSTER extends MiniRaftClu
     final MiniRaftCluster.PeerChanges change = cluster.addNewPeers(2, true,
         true);
     try (final RaftClient client = cluster.createClient(leaderId, RetryPolicies.noRetry())) {
-      Assertions.assertThrows(RaftRetryFailureException.class,
+      final RaftException e = Assertions.assertThrows(RaftException.class,
                () -> client.admin().setConfiguration(change.allPeersInNewConf));
+      Assertions.assertTrue( e instanceof RaftRetryFailureException
+              || e instanceof ReconfigurationTimeoutException,
+          () -> "Unexpected exception: " + e);
     }
 
     final SnapshotInfo snapshotInfo = cluster.getDivision(change.newPeers[0].getId())
diff --git a/ratis-server/src/test/java/org/apache/ratis/RetryCacheTests.java b/ratis-server/src/test/java/org/apache/ratis/RetryCacheTests.java
index 8929dfcc7..5a363bf08 100644
--- a/ratis-server/src/test/java/org/apache/ratis/RetryCacheTests.java
+++ b/ratis-server/src/test/java/org/apache/ratis/RetryCacheTests.java
@@ -40,6 +40,7 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.event.Level;
 
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.concurrent.TimeUnit;
 
 import static java.util.Arrays.asList;
@@ -137,9 +138,8 @@ public abstract class RetryCacheTests<CLUSTER extends MiniRaftCluster>
       final long oldLastApplied = cluster.getLeader().getInfo().getLastAppliedIndex();
 
       // trigger the reconfiguration, make sure the original leader is kicked out
-      PeerChanges change = cluster.addNewPeers(2, true);
-      RaftPeer[] allPeers = cluster.removePeers(2, true,
-              asList(change.newPeers)).allPeersInNewConf;
+      final PeerChanges change = cluster.removePeers(2, true, Collections.emptyList());
+      final RaftPeer[] allPeers = change.allPeersInNewConf;
       // trigger setConfiguration
       RaftServerTestUtil.runWithMinorityPeers(cluster, Arrays.asList(allPeers),
           peers -> cluster.setConfiguration(peers.toArray(RaftPeer.emptyArray())));
diff --git a/ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshot.java b/ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshotWithGrpc.java
similarity index 97%
rename from ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshot.java
rename to ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshotWithGrpc.java
index b85cd1353..9b2c90384 100644
--- a/ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshot.java
+++ b/ratis-test/src/test/java/org/apache/ratis/grpc/TestLeaderInstallSnapshotWithGrpc.java
@@ -1,4 +1,4 @@
-/**
+/*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
@@ -24,7 +24,7 @@ import org.junit.jupiter.params.provider.MethodSource;
 import java.util.Arrays;
 import java.util.Collection;
 
-public class TestLeaderInstallSnapshot
+public class TestLeaderInstallSnapshotWithGrpc
 extends InstallSnapshotFromLeaderTests<MiniRaftClusterWithGrpc>
 implements MiniRaftClusterWithGrpc.FactoryGet {