From 62fbc7bbc25413a1aba67f21e46f57153f328778 Mon Sep 17 00:00:00 2001 From: Albert Zaharovits Date: Wed, 25 Jun 2025 13:51:00 +0300 Subject: [PATCH 1/2] Fix 129148 --- muted-tests.yml | 3 --- ...hreadPoolMergeExecutorServiceDiskSpaceTests.java | 13 ++++++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/muted-tests.yml b/muted-tests.yml index 6e416b4e6fa69..d7aa3e74fc953 100644 --- a/muted-tests.yml +++ b/muted-tests.yml @@ -476,9 +476,6 @@ tests: - class: org.elasticsearch.index.engine.ThreadPoolMergeExecutorServiceDiskSpaceTests method: testAvailableDiskSpaceMonitorWhenFileSystemStatErrors issue: https://github.com/elastic/elasticsearch/issues/129149 -- class: org.elasticsearch.index.engine.ThreadPoolMergeExecutorServiceDiskSpaceTests - method: testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution - issue: https://github.com/elastic/elasticsearch/issues/129148 - class: org.elasticsearch.xpack.esql.qa.single_node.GenerativeForkIT method: test {lookup-join.EnrichLookupStatsBug ASYNC} issue: https://github.com/elastic/elasticsearch/issues/129228 diff --git a/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java b/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java index 5b97878b18450..f031ea137ec6a 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java @@ -847,6 +847,7 @@ public void testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution() thro when(mergeTask2.schedule()).thenReturn(RUN); boolean task1Runs = randomBoolean(); long currentAvailableBudget = expectedAvailableBudget.get(); + // the over-budget here can be larger than the total initial available budget long overBudget = randomLongBetween(currentAvailableBudget + 1L, currentAvailableBudget + 100L); long underBudget = randomLongBetween(0L, currentAvailableBudget); if (task1Runs) { @@ -882,11 +883,13 @@ public void testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution() thro // update the expected budget given that one task now finished expectedAvailableBudget.set(expectedAvailableBudget.get() + completedMergeTask.estimatedRemainingMergeSize()); } - // let the test finish cleanly - assertBusy(() -> { - assertThat(threadPoolMergeExecutorService.getDiskSpaceAvailableForNewMergeTasks(), is(aHasMoreSpace ? 112_500L : 103_000L)); - assertThat(threadPoolMergeExecutorService.allDone(), is(true)); - }); + assertBusy(() -> assertThat(threadPoolMergeExecutorService.getDiskSpaceAvailableForNewMergeTasks(), is(aHasMoreSpace ? 112_500L : 103_000L))); + // let the test finish cleanly (some tasks can be over budget even if all the other tasks finished running) + aFileStore.totalSpace = Long.MAX_VALUE; + bFileStore.totalSpace = Long.MAX_VALUE; + aFileStore.usableSpace = Long.MAX_VALUE; + bFileStore.usableSpace = Long.MAX_VALUE; + assertBusy(() -> assertThat(threadPoolMergeExecutorService.allDone(), is(true))); } if (setThreadPoolMergeSchedulerSetting) { assertWarnings( From 60bc42c16fe04482a28f53ee39cfb3090989ac15 Mon Sep 17 00:00:00 2001 From: elasticsearchmachine Date: Wed, 25 Jun 2025 11:54:53 +0000 Subject: [PATCH 2/2] [CI] Auto commit changes from spotless --- .../ThreadPoolMergeExecutorServiceDiskSpaceTests.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java b/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java index f031ea137ec6a..4653f8210cda3 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java @@ -883,7 +883,12 @@ public void testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution() thro // update the expected budget given that one task now finished expectedAvailableBudget.set(expectedAvailableBudget.get() + completedMergeTask.estimatedRemainingMergeSize()); } - assertBusy(() -> assertThat(threadPoolMergeExecutorService.getDiskSpaceAvailableForNewMergeTasks(), is(aHasMoreSpace ? 112_500L : 103_000L))); + assertBusy( + () -> assertThat( + threadPoolMergeExecutorService.getDiskSpaceAvailableForNewMergeTasks(), + is(aHasMoreSpace ? 112_500L : 103_000L) + ) + ); // let the test finish cleanly (some tasks can be over budget even if all the other tasks finished running) aFileStore.totalSpace = Long.MAX_VALUE; bFileStore.totalSpace = Long.MAX_VALUE;