Skip to content

Commit 3ffc620

Browse files
committed
Fix Flaky Test SpecificClusterManagerNodesIT.testElectOnlyBetweenClusterManagerNodes
Signed-off-by: kkewwei <kkewwei@163.com>
1 parent 9537d39 commit 3ffc620

File tree

1 file changed

+27
-33
lines changed

1 file changed

+27
-33
lines changed

server/src/internalClusterTest/java/org/opensearch/cluster/SpecificClusterManagerNodesIT.java

+27-33
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ public void testElectOnlyBetweenClusterManagerNodes() throws Exception {
225225
equalTo(clusterManagerNodeName)
226226
);
227227
assertThat(
228-
internalCluster().nonClusterManagerClient()
228+
internalCluster().clusterManagerClient()
229229
.admin()
230230
.cluster()
231231
.prepareState()
@@ -237,6 +237,31 @@ public void testElectOnlyBetweenClusterManagerNodes() throws Exception {
237237
.getName(),
238238
equalTo(clusterManagerNodeName)
239239
);
240+
241+
logger.info("--> closing cluster-manager node (1)");
242+
client().execute(AddVotingConfigExclusionsAction.INSTANCE, new AddVotingConfigExclusionsRequest(clusterManagerNodeName)).get();
243+
// removing the cluster-manager from the voting configuration immediately triggers the cluster-manager to step down
244+
245+
// make sure `nextClusterManagerEligableNodeName` has been elected as the new cluster-manager
246+
waitUntil(() -> {
247+
try {
248+
return nextClusterManagerEligableNodeName.equals(
249+
internalCluster().nonClusterManagerClient()
250+
.admin()
251+
.cluster()
252+
.prepareState()
253+
.execute()
254+
.actionGet()
255+
.getState()
256+
.nodes()
257+
.getClusterManagerNode()
258+
.getName()
259+
);
260+
} catch (Exception e) {
261+
return false;
262+
}
263+
});
264+
240265
assertThat(
241266
internalCluster().clusterManagerClient()
242267
.admin()
@@ -248,40 +273,9 @@ public void testElectOnlyBetweenClusterManagerNodes() throws Exception {
248273
.nodes()
249274
.getClusterManagerNode()
250275
.getName(),
251-
equalTo(clusterManagerNodeName)
276+
equalTo(nextClusterManagerEligableNodeName)
252277
);
253278

254-
logger.info("--> closing cluster-manager node (1)");
255-
client().execute(AddVotingConfigExclusionsAction.INSTANCE, new AddVotingConfigExclusionsRequest(clusterManagerNodeName)).get();
256-
// removing the cluster-manager from the voting configuration immediately triggers the cluster-manager to step down
257-
assertBusy(() -> {
258-
assertThat(
259-
internalCluster().nonClusterManagerClient()
260-
.admin()
261-
.cluster()
262-
.prepareState()
263-
.execute()
264-
.actionGet()
265-
.getState()
266-
.nodes()
267-
.getClusterManagerNode()
268-
.getName(),
269-
equalTo(nextClusterManagerEligableNodeName)
270-
);
271-
assertThat(
272-
internalCluster().clusterManagerClient()
273-
.admin()
274-
.cluster()
275-
.prepareState()
276-
.execute()
277-
.actionGet()
278-
.getState()
279-
.nodes()
280-
.getClusterManagerNode()
281-
.getName(),
282-
equalTo(nextClusterManagerEligableNodeName)
283-
);
284-
});
285279
internalCluster().stopRandomNode(InternalTestCluster.nameFilter(clusterManagerNodeName));
286280
assertThat(
287281
internalCluster().nonClusterManagerClient()

0 commit comments

Comments
 (0)