diff --git a/modules/transport-netty4/src/test/java/org/elasticsearch/rest/discovery/Zen2RestApiIT.java b/modules/transport-netty4/src/test/java/org/elasticsearch/rest/discovery/Zen2RestApiIT.java index 0a9e5f8dfc181..7944735dd4dfe 100644 --- a/modules/transport-netty4/src/test/java/org/elasticsearch/rest/discovery/Zen2RestApiIT.java +++ b/modules/transport-netty4/src/test/java/org/elasticsearch/rest/discovery/Zen2RestApiIT.java @@ -118,6 +118,7 @@ public Settings onNodeStopped(String nodeName) throws IOException { public void testClearVotingTombstonesNotWaitingForRemoval() throws Exception { internalCluster().setBootstrapMasterNodeIndex(2); List nodes = internalCluster().startNodes(3); + ensureStableCluster(3); RestClient restClient = getRestClient(); Response response = restClient.performRequest(new Request("POST", "/_cluster/voting_config_exclusions/" + nodes.get(2))); assertThat(response.getStatusLine().getStatusCode(), is(200)); @@ -131,6 +132,7 @@ public void testClearVotingTombstonesNotWaitingForRemoval() throws Exception { public void testClearVotingTombstonesWaitingForRemoval() throws Exception { internalCluster().setBootstrapMasterNodeIndex(2); List nodes = internalCluster().startNodes(3); + ensureStableCluster(3); RestClient restClient = getRestClient(); String nodeToWithdraw = nodes.get(randomIntBetween(0, 2)); Response response = restClient.performRequest(new Request("POST", "/_cluster/voting_config_exclusions/" + nodeToWithdraw)); @@ -145,6 +147,7 @@ public void testClearVotingTombstonesWaitingForRemoval() throws Exception { public void testFailsOnUnknownNode() throws Exception { internalCluster().setBootstrapMasterNodeIndex(2); internalCluster().startNodes(3); + ensureStableCluster(3); RestClient restClient = getRestClient(); try { restClient.performRequest(new Request("POST", "/_cluster/voting_config_exclusions/invalid")); diff --git a/server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java b/server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java index ad1a0516e4430..7505aa584e7b6 100644 --- a/server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java +++ b/server/src/test/java/org/elasticsearch/cluster/MinimumMasterNodesIT.java @@ -284,7 +284,7 @@ public void testCannotCommitStateThreeNodes() throws Exception { .build(); internalCluster().startNodes(3, settings); - ensureGreen(); // ensure cluster state is recovered before we disrupt things + ensureStableCluster(3); final String master = internalCluster().getMasterName(); Set otherNodes = new HashSet<>(Arrays.asList(internalCluster().getNodeNames())); diff --git a/server/src/test/java/org/elasticsearch/cluster/coordination/ElasticsearchNodeCommandIT.java b/server/src/test/java/org/elasticsearch/cluster/coordination/ElasticsearchNodeCommandIT.java index 9ce97895d0819..6fe7b65fad798 100644 --- a/server/src/test/java/org/elasticsearch/cluster/coordination/ElasticsearchNodeCommandIT.java +++ b/server/src/test/java/org/elasticsearch/cluster/coordination/ElasticsearchNodeCommandIT.java @@ -250,7 +250,6 @@ public void testDetachAbortedByUser() throws IOException { expectThrows(() -> detachCluster(environment, 0, true), ElasticsearchNodeCommand.ABORTED_BY_USER_MSG); } - @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/39220") public void test3MasterNodes2Failed() throws Exception { internalCluster().setBootstrapMasterNodeIndex(2); List masterNodes = new ArrayList<>(); @@ -268,8 +267,12 @@ public void test3MasterNodes2Failed() throws Exception { logger.info("--> start 2nd and 3rd master-eligible nodes and bootstrap"); masterNodes.addAll(internalCluster().startMasterOnlyNodes(2)); // node ordinals 2 and 3 + logger.info("--> wait for all nodes to join the cluster"); + ensureStableCluster(4); + logger.info("--> create index test"); createIndex("test"); + ensureGreen("test"); logger.info("--> stop 2nd and 3d master eligible node"); internalCluster().stopRandomNode(InternalTestCluster.nameFilter(masterNodes.get(1)));