From 5e5485ca05ef5c9ec91a24af358662ceac65f9a0 Mon Sep 17 00:00:00 2001 From: Albert Zaharovits Date: Wed, 13 Aug 2025 10:59:13 +0300 Subject: [PATCH] There must be at least one merge task blocked (#132496) After triggering a force merge, there might still be other merge tasks running concurrently, so it is incorrect to assert a single merge is blocked in the test. Fix https://github.com/elastic/elasticsearch/issues/131789 Co-authored-by: Patrick Doyle --- muted-tests.yml | 3 --- .../elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java | 6 ++++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/muted-tests.yml b/muted-tests.yml index 274616a584329..c6bbc368800b4 100644 --- a/muted-tests.yml +++ b/muted-tests.yml @@ -425,9 +425,6 @@ tests: - class: org.elasticsearch.packaging.test.DockerTests method: test151MachineDependentHeapWithSizeOverride issue: https://github.com/elastic/elasticsearch/issues/123437 -- class: org.elasticsearch.index.engine.MergeWithLowDiskSpaceIT - method: testRelocationWhileForceMerging - issue: https://github.com/elastic/elasticsearch/issues/131789 - class: org.elasticsearch.search.sort.FieldSortIT method: testSortMixedFieldTypes issue: https://github.com/elastic/elasticsearch/issues/129445 diff --git a/server/src/internalClusterTest/java/org/elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java index ff1dde7ed5572..1857b7529f6ca 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java @@ -196,6 +196,7 @@ public void testForceMergeIsBlockedThenUnblocked() throws Exception { indexName, Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0).put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1).build() ); + ensureGreen(indexName); // get current disk space usage (for all indices on the node) IndicesStatsResponse stats = indicesAdmin().prepareStats().clear().setStore(true).get(); long usedDiskSpaceAfterIndexing = stats.getTotal().getStore().sizeInBytes(); @@ -286,6 +287,7 @@ public void testRelocationWhileForceMerging() throws Exception { indexName, Settings.builder().put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0).put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1).build() ); + ensureGreen(indexName); // get current disk space usage (for all indices on the node) IndicesStatsResponse stats = indicesAdmin().prepareStats().clear().setStore(true).get(); long usedDiskSpaceAfterIndexing = stats.getTotal().getStore().sizeInBytes(); @@ -320,8 +322,8 @@ public void testRelocationWhileForceMerging() throws Exception { .getThreadPoolMergeExecutorService(); TestTelemetryPlugin testTelemetryPlugin = getTelemetryPlugin(node1); assertBusy(() -> { - // merge executor says merging is blocked due to insufficient disk space while there is a single merge task enqueued - assertThat(threadPoolMergeExecutorService.getMergeTasksQueueLength(), equalTo(1)); + // merge executor says merging is blocked due to insufficient disk space + assertThat(threadPoolMergeExecutorService.getMergeTasksQueueLength(), greaterThan(0)); assertTrue(threadPoolMergeExecutorService.isMergingBlockedDueToInsufficientDiskSpace()); // telemetry says that there are indeed some segments enqueued to be merged testTelemetryPlugin.collect();