From 17c40b43b2ef1d2844a6e0eca85271b109cc6f95 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux Date: Wed, 15 Sep 2021 14:17:22 +0200 Subject: [PATCH] Adjust SearchableSnapshotsBlobStoreCacheIntegTests.testBlobStoreCache This test sometimes fails (#77753) when it tries to refresh the snapshot blob cache index while it wasn't created at all due to the test index being completely empty with 0 documents indexed. Having an empty index in this test does not make much sense because the index will contain no segments and therefore no segments file to cache in the system index. This pull request adjusts the test to always index at least some docs. --- ...ableSnapshotsBlobStoreCacheIntegTests.java | 48 +++++++++---------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/cache/blob/SearchableSnapshotsBlobStoreCacheIntegTests.java b/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/cache/blob/SearchableSnapshotsBlobStoreCacheIntegTests.java index 1c0900ff2b84d..d5652c8ef1a42 100644 --- a/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/cache/blob/SearchableSnapshotsBlobStoreCacheIntegTests.java +++ b/x-pack/plugin/searchable-snapshots/src/internalClusterTest/java/org/elasticsearch/xpack/searchablesnapshots/cache/blob/SearchableSnapshotsBlobStoreCacheIntegTests.java @@ -111,23 +111,23 @@ protected Settings nodeSettings(int nodeOrdinal, Settings otherSettings) { return Settings.builder().put(super.nodeSettings(nodeOrdinal, otherSettings)).put(cacheSettings).build(); } - @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/77753") public void testBlobStoreCache() throws Exception { final String indexName = randomAlphaOfLength(10).toLowerCase(Locale.ROOT); createIndex(indexName); final NumShards numberOfShards = getNumShards(indexName); - final int numberOfDocs = scaledRandomIntBetween(0, 20_000); - if (numberOfDocs > 0) { - final List indexRequestBuilders = new ArrayList<>(); - for (int i = numberOfDocs; i > 0; i--) { - XContentBuilder builder = XContentFactory.smileBuilder(); - builder.startObject().field("text", randomRealisticUnicodeOfCodepointLengthBetween(5, 50)).field("num", i).endObject(); - indexRequestBuilders.add(client().prepareIndex(indexName).setSource(builder)); - } - indexRandom(true, true, true, indexRequestBuilders); + final int numberOfDocs = scaledRandomIntBetween(10, 20_000); + logger.info("--> indexing [{}] documents in [{}]", numberOfDocs, indexName); + + final List indexRequestBuilders = new ArrayList<>(); + for (int i = numberOfDocs; i > 0; i--) { + XContentBuilder builder = XContentFactory.smileBuilder(); + builder.startObject().field("text", randomRealisticUnicodeOfCodepointLengthBetween(5, 50)).field("num", i).endObject(); + indexRequestBuilders.add(client().prepareIndex(indexName).setSource(builder)); } + indexRandom(true, true, true, indexRequestBuilders); + if (randomBoolean()) { logger.info("--> force-merging index before snapshotting"); final ForceMergeResponse forceMergeResponse = client().admin() @@ -196,20 +196,18 @@ public void testBlobStoreCache() throws Exception { } logger.info("--> verifying cached documents in system index [{}]", SNAPSHOT_BLOB_CACHE_INDEX); - if (numberOfDocs > 0) { - ensureYellow(SNAPSHOT_BLOB_CACHE_INDEX); - refreshSystemIndex(); + ensureYellow(SNAPSHOT_BLOB_CACHE_INDEX); + refreshSystemIndex(); - logger.info("--> verifying system index [{}] data tiers preference", SNAPSHOT_BLOB_CACHE_INDEX); - assertThat( - systemClient().admin() - .indices() - .prepareGetSettings(SNAPSHOT_BLOB_CACHE_INDEX) - .get() - .getSetting(SNAPSHOT_BLOB_CACHE_INDEX, DataTierAllocationDecider.INDEX_ROUTING_PREFER), - equalTo("data_content,data_hot") - ); - } + logger.info("--> verifying system index [{}] data tiers preference", SNAPSHOT_BLOB_CACHE_INDEX); + assertThat( + systemClient().admin() + .indices() + .prepareGetSettings(SNAPSHOT_BLOB_CACHE_INDEX) + .get() + .getSetting(SNAPSHOT_BLOB_CACHE_INDEX, DataTierAllocationDecider.INDEX_ROUTING_PREFER), + equalTo("data_content,data_hot") + ); final long numberOfCachedBlobs = systemClient().prepareSearch(SNAPSHOT_BLOB_CACHE_INDEX) .setIndicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN) @@ -263,9 +261,7 @@ public void testBlobStoreCache() throws Exception { assertHitCount(client().prepareSearch(restoredAgainIndex).setSize(0).setTrackTotalHits(true).get(), numberOfDocs); logger.info("--> verifying that no extra cached blobs were indexed [{}]", SNAPSHOT_BLOB_CACHE_INDEX); - if (numberOfDocs > 0) { - refreshSystemIndex(); - } + refreshSystemIndex(); assertHitCount( systemClient().prepareSearch(SNAPSHOT_BLOB_CACHE_INDEX).setIndicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN).setSize(0).get(), numberOfCachedBlobs