Skip to content

Commit ecaa0b1

Browse files
Fix ThreadPoolMergeSchedulerTests testSchedulerCloseWaitsForRunningMerge (#126110)
Fixes #125236
1 parent 0095f29 commit ecaa0b1

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

muted-tests.yml

-3
Original file line numberDiff line numberDiff line change
@@ -308,9 +308,6 @@ tests:
308308
- class: org.elasticsearch.packaging.test.DockerTests
309309
method: test012SecurityCanBeDisabled
310310
issue: https://github.com/elastic/elasticsearch/issues/116636
311-
- class: org.elasticsearch.index.engine.ThreadPoolMergeSchedulerTests
312-
method: testSchedulerCloseWaitsForRunningMerge
313-
issue: https://github.com/elastic/elasticsearch/issues/125236
314311
- class: org.elasticsearch.index.shard.StoreRecoveryTests
315312
method: testAddIndices
316313
issue: https://github.com/elastic/elasticsearch/issues/124104

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

+5
Original file line numberDiff line numberDiff line change
@@ -508,18 +508,21 @@ public void testSchedulerCloseWaitsForRunningMerge() throws Exception {
508508
)
509509
) {
510510
CountDownLatch mergeDoneLatch = new CountDownLatch(1);
511+
CountDownLatch mergeRunningLatch = new CountDownLatch(1);
511512
MergeSource mergeSource = mock(MergeSource.class);
512513
OneMerge oneMerge = mock(OneMerge.class);
513514
when(oneMerge.getStoreMergeInfo()).thenReturn(getNewMergeInfo(randomLongBetween(1L, 10L)));
514515
when(oneMerge.getMergeProgress()).thenReturn(new MergePolicy.OneMergeProgress());
515516
when(mergeSource.getNextMerge()).thenReturn(oneMerge, (OneMerge) null);
516517
doAnswer(invocation -> {
518+
mergeRunningLatch.countDown();
517519
OneMerge merge = (OneMerge) invocation.getArguments()[0];
518520
assertFalse(merge.isAborted());
519521
// wait to be signalled before completing the merge
520522
mergeDoneLatch.await();
521523
return null;
522524
}).when(mergeSource).merge(any(OneMerge.class));
525+
// submit the merge
523526
threadPoolMergeScheduler.merge(mergeSource, randomFrom(MergeTrigger.values()));
524527
Thread t = new Thread(() -> {
525528
try {
@@ -531,6 +534,8 @@ public void testSchedulerCloseWaitsForRunningMerge() throws Exception {
531534
t.start();
532535
try {
533536
assertTrue(t.isAlive());
537+
// wait for the merge to actually run
538+
mergeRunningLatch.await();
534539
// ensure the merge scheduler is effectively "closed"
535540
assertBusy(() -> {
536541
MergeSource mergeSource2 = mock(MergeSource.class);

0 commit comments

Comments
 (0)