Sfoglia il codice sorgente

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 <patrick.doyle@elastic.co>
Albert Zaharovits 2 mesi fa
parent
commit
3d14a39de2

+ 0 - 3
muted-tests.yml

@@ -444,9 +444,6 @@ tests:
 - class: org.elasticsearch.test.rest.yaml.RcsCcsCommonYamlTestSuiteIT
   method: test {p0=search/600_flattened_ignore_above/flattened ignore_above multi-value field}
   issue: https://github.com/elastic/elasticsearch/issues/131967
-- class: org.elasticsearch.index.engine.MergeWithLowDiskSpaceIT
-  method: testRelocationWhileForceMerging
-  issue: https://github.com/elastic/elasticsearch/issues/131789
 - class: org.elasticsearch.test.rest.yaml.MDPYamlTestSuiteIT
   method: test {yaml=mdp/10_basic/Index using shared data path}
   issue: https://github.com/elastic/elasticsearch/issues/132223

+ 4 - 2
server/src/internalClusterTest/java/org/elasticsearch/index/engine/MergeWithLowDiskSpaceIT.java

@@ -196,6 +196,7 @@ public class MergeWithLowDiskSpaceIT extends DiskUsageIntegTestCase {
             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 class MergeWithLowDiskSpaceIT extends DiskUsageIntegTestCase {
             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 class MergeWithLowDiskSpaceIT extends DiskUsageIntegTestCase {
             .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();