Skip to content

Commit 3b3bd89

Browse files
hotcodemachaAshutosh Gupta
authored andcommitted
YARN-11248. Add unit test for FINISHED_CONTAINERS_PULLED_BY_AM event on DECOMMISSIONING (#4721)
Co-authored-by: Ashutosh Gupta <ashugpt@amazon.com> Signed-off-by: Akira Ajisaka <aajisaka@apache.org> (cherry picked from commit f02ff1a)
1 parent eff292b commit 3b3bd89

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

  • hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestRMNodeTransitions.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@
5151
import org.apache.hadoop.yarn.event.EventHandler;
5252
import org.apache.hadoop.yarn.event.InlineDispatcher;
5353
import org.apache.hadoop.yarn.server.api.protocolrecords.NodeHeartbeatResponse;
54+
import org.apache.hadoop.yarn.server.api.records.NodeAction;
5455
import org.apache.hadoop.yarn.server.api.records.NodeHealthStatus;
5556
import org.apache.hadoop.yarn.server.api.records.NodeStatus;
5657
import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -76,6 +77,7 @@
7677
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.SchedulerEventType;
7778
import org.apache.hadoop.yarn.server.resourcemanager.security.DelegationTokenRenewer;
7879
import org.apache.hadoop.yarn.server.utils.BuilderUtils;
80+
import org.apache.hadoop.yarn.server.utils.YarnServerBuilderUtils;
7981
import org.apache.hadoop.yarn.util.Records;
8082
import org.junit.After;
8183
import org.junit.Assert;
@@ -1286,4 +1288,27 @@ public void testCalculateHeartBeatInterval() {
12861288
calcIntervalTest(rmNode, nodeUtil, hbDefault, hbMin, hbMax,
12871289
speedup, slowdown, vcoreUnit * 1.0F, hbDefault); // 100%
12881290
}
1291+
1292+
@Test
1293+
public void testFinishedContainersPulledByAmOnDecommissioningNode() {
1294+
RMNodeImpl rMNodeImpl = getRunningNode();
1295+
rMNodeImpl.handle(
1296+
new RMNodeEvent(rMNodeImpl.getNodeID(), RMNodeEventType.GRACEFUL_DECOMMISSION));
1297+
Assert.assertEquals(NodeState.DECOMMISSIONING, rMNodeImpl.getState());
1298+
1299+
ContainerId containerId = BuilderUtils.newContainerId(
1300+
BuilderUtils.newApplicationAttemptId(BuilderUtils.newApplicationId(0, 0), 0), 0);
1301+
List<ContainerId> containerIds = Arrays.asList(containerId);
1302+
1303+
rMNodeImpl.handle(
1304+
new RMNodeFinishedContainersPulledByAMEvent(rMNodeImpl.getNodeID(), containerIds));
1305+
Assert.assertEquals(NodeState.DECOMMISSIONING, rMNodeImpl.getState());
1306+
1307+
// Verify expected containersToBeRemovedFromNM from NodeHeartbeatResponse.
1308+
NodeHeartbeatResponse response =
1309+
YarnServerBuilderUtils.newNodeHeartbeatResponse(1, NodeAction.NORMAL, null, null, null,
1310+
null, 1000);
1311+
rMNodeImpl.setAndUpdateNodeHeartbeatResponse(response);
1312+
Assert.assertEquals(1, response.getContainersToBeRemovedFromNM().size());
1313+
}
12891314
}

0 commit comments

Comments
 (0)