|
@@ -48,6 +48,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNodeStatusEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.rmnode.UpdatedContainerInfo;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.YarnScheduler;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeAddedSchedulerEvent;
|
|
|
+import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeRemovedSchedulerEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeUpdateSchedulerEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEvent;
|
|
|
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEventType;
|
|
@@ -269,6 +270,15 @@ public class TestRMNodeTransitions {
|
|
|
node.handle(new RMNodeEvent(node.getNodeID(), RMNodeEventType.EXPIRE));
|
|
|
Assert.assertEquals(NodeState.LOST, node.getState());
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testUnhealthyExpireForSchedulerRemove() {
|
|
|
+ RMNodeImpl node = getUnhealthyNode();
|
|
|
+ verify(scheduler,times(2)).handle(any(NodeRemovedSchedulerEvent.class));
|
|
|
+ node.handle(new RMNodeEvent(node.getNodeID(), RMNodeEventType.EXPIRE));
|
|
|
+ verify(scheduler,times(2)).handle(any(NodeRemovedSchedulerEvent.class));
|
|
|
+ Assert.assertEquals(NodeState.LOST, node.getState());
|
|
|
+ }
|
|
|
|
|
|
@Test
|
|
|
public void testRunningDecommission() {
|