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 85169ac1330e6..20c0ef29a3b31 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/ThreadPoolMergeExecutorServiceDiskSpaceTests.java @@ -770,16 +770,8 @@ public void testUnavailableBudgetBlocksNewMergeTasksFromStartingExecution() thro while (submittedMergesCount > 0 && expectedAvailableBudget.get() > 0L) { ThreadPoolMergeScheduler.MergeTask mergeTask = mock(ThreadPoolMergeScheduler.MergeTask.class); when(mergeTask.supportsIOThrottling()).thenReturn(randomBoolean()); - doAnswer(mock -> { - Schedule schedule = randomFrom(Schedule.values()); - if (schedule == BACKLOG) { - testThreadPool.executor(ThreadPool.Names.GENERIC).execute(() -> { - // re-enqueue backlogged merge task - threadPoolMergeExecutorService.reEnqueueBackloggedMergeTask(mergeTask); - }); - } - return schedule; - }).when(mergeTask).schedule(); + // avoid backlogging and re-enqueing merge tasks in this test because it makes the queue's available budget unsteady + when(mergeTask.schedule()).thenReturn(randomFrom(RUN, ABORT)); // let some task complete, which will NOT hold up any budget if (randomBoolean()) { // this task will NOT hold up any budget because it runs quickly (it is not blocked)