Skip to content

Commit c61bce3

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 12ef509 commit c61bce3

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

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)