Skip to content

Commit 485b2fd

Browse files
Avoid re-enqueueing merge tasks (#132020) (#132269)
Avoid mocking merge tasks as backlogged (which are then re-enqueued) because it makes the merge task's queue available budget value unsteady, which breaks the test when it later schedules merge tasks that are under/over budget. Closes #130205 #131982
1 parent 5520641 commit 485b2fd

File tree

1 file changed

+2
-10
lines changed

1 file changed

+2
-10
lines changed

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -770,16 +770,8 @@ public void testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution() thro
770770
while (submittedMergesCount > 0 && expectedAvailableBudget.get() > 0L) {
771771
ThreadPoolMergeScheduler.MergeTask mergeTask = mock(ThreadPoolMergeScheduler.MergeTask.class);
772772
when(mergeTask.supportsIOThrottling()).thenReturn(randomBoolean());
773-
doAnswer(mock -> {
774-
Schedule schedule = randomFrom(Schedule.values());
775-
if (schedule == BACKLOG) {
776-
testThreadPool.executor(ThreadPool.Names.GENERIC).execute(() -> {
777-
// re-enqueue backlogged merge task
778-
threadPoolMergeExecutorService.reEnqueueBackloggedMergeTask(mergeTask);
779-
});
780-
}
781-
return schedule;
782-
}).when(mergeTask).schedule();
773+
// avoid backlogging and re-enqueing merge tasks in this test because it makes the queue's available budget unsteady
774+
when(mergeTask.schedule()).thenReturn(randomFrom(RUN, ABORT));
783775
// let some task complete, which will NOT hold up any budget
784776
if (randomBoolean()) {
785777
// this task will NOT hold up any budget because it runs quickly (it is not blocked)

0 commit comments

Comments
 (0)