diff --git a/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java b/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java index 2dac552cfdc51..8156ffbd70cc1 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/gateway/ReplicaShardAllocatorIT.java @@ -263,8 +263,10 @@ public void testPreferCopyWithHighestMatchingOperations() throws Exception { String nodeWithHigherMatching = randomFrom(internalCluster().nodesInclude(indexName)); Settings nodeWithHigherMatchingSettings = internalCluster().dataPathSettings(nodeWithHigherMatching); internalCluster().stopRandomNode(InternalTestCluster.nameFilter(nodeWithHigherMatching)); - indexRandom(randomBoolean(), false, randomBoolean(), IntStream.range(0, between(0, 100)) + if (usually()) { + indexRandom(randomBoolean(), false, randomBoolean(), IntStream.range(0, between(1, 100)) .mapToObj(n -> client().prepareIndex(indexName, "_doc").setSource("f", "v")).collect(Collectors.toList())); + } assertAcked(client().admin().cluster().prepareUpdateSettings() .setPersistentSettings(Settings.builder().put("cluster.routing.allocation.enable", "primaries").build())); diff --git a/test/framework/src/main/java/org/elasticsearch/test/hamcrest/ElasticsearchAssertions.java b/test/framework/src/main/java/org/elasticsearch/test/hamcrest/ElasticsearchAssertions.java index 1845e54a928e6..37d37677903ba 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/hamcrest/ElasticsearchAssertions.java +++ b/test/framework/src/main/java/org/elasticsearch/test/hamcrest/ElasticsearchAssertions.java @@ -330,7 +330,15 @@ public static void assertFailures(SearchRequestBuilder searchRequestBuilder, Res } public static void assertNoFailures(BroadcastResponse response) { - assertThat("Unexpected ShardFailures: " + Arrays.toString(response.getShardFailures()), response.getFailedShards(), equalTo(0)); + if (response.getFailedShards() != 0) { + final AssertionError assertionError = new AssertionError("[" + response.getFailedShards() + "] shard failures"); + + for (DefaultShardOperationFailedException shardFailure : response.getShardFailures()) { + assertionError.addSuppressed(new ElasticsearchException(shardFailure.toString(), shardFailure.getCause())); + } + + throw assertionError; + } } public static void assertAllSuccessful(BroadcastResponse response) {