Browse Source

[CI] AllocationIdIT testFailedRecoveryOnAllocateStalePrimaryRequiresAnotherAllocateStalePrimary failure

Closes #35504
Vladimir Dolzhenko 7 years ago
parent
commit
9728119b82

+ 11 - 9
server/src/test/java/org/elasticsearch/cluster/routing/AllocationIdIT.java

@@ -224,15 +224,17 @@ public class AllocationIdIT extends ESIntegTestCase {
     }
 
     private void checkNoValidShardCopy(String indexName, ShardId shardId) throws Exception {
-        final ClusterAllocationExplanation explanation =
-            client().admin().cluster().prepareAllocationExplain()
-                .setIndex(indexName).setShard(shardId.id()).setPrimary(true)
-                .get().getExplanation();
-
-        final ShardAllocationDecision shardAllocationDecision = explanation.getShardAllocationDecision();
-        assertThat(shardAllocationDecision.isDecisionTaken(), equalTo(true));
-        assertThat(shardAllocationDecision.getAllocateDecision().getAllocationDecision(),
-            equalTo(AllocationDecision.NO_VALID_SHARD_COPY));
+        assertBusy(() -> {
+            final ClusterAllocationExplanation explanation =
+                client().admin().cluster().prepareAllocationExplain()
+                    .setIndex(indexName).setShard(shardId.id()).setPrimary(true)
+                    .get().getExplanation();
+
+            final ShardAllocationDecision shardAllocationDecision = explanation.getShardAllocationDecision();
+            assertThat(shardAllocationDecision.isDecisionTaken(), equalTo(true));
+            assertThat(shardAllocationDecision.getAllocateDecision().getAllocationDecision(),
+                equalTo(AllocationDecision.NO_VALID_SHARD_COPY));
+        });
     }
 
 }