File tree Expand file tree Collapse file tree 1 file changed +5
-0
lines changed 
server/src/test/java/org/elasticsearch/index/engine Expand file tree Collapse file tree 1 file changed +5
-0
lines changed Original file line number Diff line number Diff 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 );
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments