50
50
import java .util .Optional ;
51
51
import java .util .Set ;
52
52
import java .util .concurrent .CountDownLatch ;
53
+ import java .util .concurrent .TimeUnit ;
53
54
import java .util .concurrent .atomic .AtomicBoolean ;
54
55
import java .util .concurrent .atomic .AtomicReference ;
55
56
import java .util .stream .Collectors ;
@@ -527,7 +528,7 @@ public void testPeriodicRecheckOffMaster() {
527
528
assertFalse (service .getPeriodicRechecker ().isScheduled ());
528
529
}
529
530
530
- public void testUnassignTask () {
531
+ public void testUnassignTask () throws InterruptedException {
531
532
ClusterState clusterState = initialState ();
532
533
ClusterState .Builder builder = ClusterState .builder (clusterState );
533
534
PersistentTasksCustomMetadata .Builder tasks = PersistentTasksCustomMetadata .builder (
@@ -545,14 +546,18 @@ public void testUnassignTask() {
545
546
clusterState = builder .metadata (metadata ).nodes (nodes ).build ();
546
547
setState (clusterService , clusterState );
547
548
PersistentTasksClusterService service = createService ((params , candidateNodes , currentState ) -> new Assignment ("_node_2" , "test" ));
549
+ final var countDownLatch = new CountDownLatch (1 );
548
550
service .unassignPersistentTask (unassignedId , tasks .getLastAllocationId (), "unassignment test" , ActionListener .wrap (task -> {
549
551
assertThat (task .getAssignment ().getExecutorNode (), is (nullValue ()));
550
552
assertThat (task .getId (), equalTo (unassignedId ));
551
553
assertThat (task .getAssignment ().getExplanation (), equalTo ("unassignment test" ));
554
+ countDownLatch .countDown ();
552
555
}, e -> fail ()));
556
+
557
+ assertTrue (countDownLatch .await (10 , TimeUnit .SECONDS ));
553
558
}
554
559
555
- public void testUnassignNonExistentTask () {
560
+ public void testUnassignNonExistentTask () throws InterruptedException {
556
561
ClusterState clusterState = initialState ();
557
562
ClusterState .Builder builder = ClusterState .builder (clusterState );
558
563
PersistentTasksCustomMetadata .Builder tasks = PersistentTasksCustomMetadata .builder (
@@ -568,12 +573,18 @@ public void testUnassignNonExistentTask() {
568
573
clusterState = builder .metadata (metadata ).nodes (nodes ).build ();
569
574
setState (clusterService , clusterState );
570
575
PersistentTasksClusterService service = createService ((params , candidateNodes , currentState ) -> new Assignment ("_node_2" , "test" ));
576
+ final var countDownLatch = new CountDownLatch (1 );
571
577
service .unassignPersistentTask (
572
578
"missing-task" ,
573
579
tasks .getLastAllocationId (),
574
580
"unassignment test" ,
575
- ActionListener .wrap (task -> fail (), e -> assertThat (e , instanceOf (ResourceNotFoundException .class )))
581
+ ActionListener .wrap (task -> fail (), e -> {
582
+ assertThat (e , instanceOf (ResourceNotFoundException .class ));
583
+ countDownLatch .countDown ();
584
+ })
576
585
);
586
+
587
+ assertTrue (countDownLatch .await (10 , TimeUnit .SECONDS ));
577
588
}
578
589
579
590
public void testTasksNotAssignedToShuttingDownNodes () {
0 commit comments