Skip to content

Commit 98a6354

Browse files
Fix ThreadPoolMergeExecutorServiceDiskSpaceTests testAbortingOrRunningMergeTaskHoldsUpBudget (#129979)
When there are multiple FS with the same available disk space but different total sizes, it's unpredictable (and irrelevant) which one the checker uses. Fixes #129823
1 parent f095b3c commit 98a6354

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

muted-tests.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -551,9 +551,6 @@ tests:
551551
- class: org.elasticsearch.xpack.esql.qa.single_node.GenerativeIT
552552
method: test
553553
issue: https://github.com/elastic/elasticsearch/issues/129819
554-
- class: org.elasticsearch.index.engine.ThreadPoolMergeExecutorServiceDiskSpaceTests
555-
method: testAbortingOrRunningMergeTaskHoldsUpBudget
556-
issue: https://github.com/elastic/elasticsearch/issues/129823
557554
- class: org.elasticsearch.index.store.FsDirectoryFactoryTests
558555
method: testPreload
559556
issue: https://github.com/elastic/elasticsearch/issues/129852

server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ public void testAbortingOrRunningMergeTaskHoldsUpBudget() throws Exception {
534534
aFileStore.totalSpace = randomLongBetween(1_000L, 10_000L);
535535
bFileStore.totalSpace = randomLongBetween(1_000L, 10_000L);
536536
aFileStore.usableSpace = randomLongBetween(900L, aFileStore.totalSpace);
537-
bFileStore.usableSpace = randomLongBetween(900L, bFileStore.totalSpace);
537+
bFileStore.usableSpace = randomValueOtherThan(aFileStore.usableSpace, () -> randomLongBetween(900L, bFileStore.totalSpace));
538538
boolean aHasMoreSpace = aFileStore.usableSpace > bFileStore.usableSpace;
539539
try (
540540
ThreadPoolMergeExecutorService threadPoolMergeExecutorService = ThreadPoolMergeExecutorService
@@ -613,7 +613,7 @@ public void testBackloggedMergeTasksDoNotHoldUpBudget() throws Exception {
613613
aFileStore.totalSpace = randomLongBetween(1_000L, 10_000L);
614614
bFileStore.totalSpace = randomLongBetween(1_000L, 10_000L);
615615
aFileStore.usableSpace = randomLongBetween(900L, aFileStore.totalSpace);
616-
bFileStore.usableSpace = randomLongBetween(900L, bFileStore.totalSpace);
616+
bFileStore.usableSpace = randomValueOtherThan(aFileStore.usableSpace, () -> randomLongBetween(900L, bFileStore.totalSpace));
617617
boolean aHasMoreSpace = aFileStore.usableSpace > bFileStore.usableSpace;
618618
try (
619619
ThreadPoolMergeExecutorService threadPoolMergeExecutorService = ThreadPoolMergeExecutorService
@@ -900,7 +900,7 @@ public void testEnqueuedMergeTasksAreUnblockedWhenEstimatedMergeSizeChanges() th
900900
long diskSpaceLimitBytes = randomLongBetween(10L, 100L);
901901
aFileStore.usableSpace = diskSpaceLimitBytes + randomLongBetween(1L, 100L);
902902
aFileStore.totalSpace = aFileStore.usableSpace + randomLongBetween(1L, 10L);
903-
bFileStore.usableSpace = diskSpaceLimitBytes + randomLongBetween(1L, 100L);
903+
bFileStore.usableSpace = randomValueOtherThan(aFileStore.usableSpace, () -> diskSpaceLimitBytes + randomLongBetween(1L, 100L));
904904
bFileStore.totalSpace = bFileStore.usableSpace + randomLongBetween(1L, 10L);
905905
boolean aHasMoreSpace = aFileStore.usableSpace > bFileStore.usableSpace;
906906
Settings.Builder settingsBuilder = Settings.builder().put(settings);
@@ -1001,7 +1001,10 @@ public void testMergeTasksAreUnblockedWhenMoreDiskSpaceBecomesAvailable() throws
10011001
bFileStore.totalSpace = randomLongBetween(300L, 1_000L);
10021002
long grantedUsableSpaceBuffer = randomLongBetween(10L, 50L);
10031003
aFileStore.usableSpace = randomLongBetween(200L, aFileStore.totalSpace - grantedUsableSpaceBuffer);
1004-
bFileStore.usableSpace = randomLongBetween(200L, bFileStore.totalSpace - grantedUsableSpaceBuffer);
1004+
bFileStore.usableSpace = randomValueOtherThan(
1005+
aFileStore.usableSpace,
1006+
() -> randomLongBetween(200L, bFileStore.totalSpace - grantedUsableSpaceBuffer)
1007+
);
10051008
boolean aHasMoreSpace = aFileStore.usableSpace > bFileStore.usableSpace;
10061009
Settings.Builder settingsBuilder = Settings.builder().put(settings);
10071010
// change the watermark level, just for coverage and it's easier with the calculations

0 commit comments

Comments
 (0)