YARN-7748. TestContainerResizing.testIncreaseContainerUnreservedWhenApplicationCompleted fails due to multiple container fail events. Contributed by Weiwei Yang.
(cherry picked from commit 35ce6eb1f526ce3db7e015fb1761eee15604100c) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4488fd82 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4488fd82 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4488fd82 Branch: refs/remotes/origin/branch-3.1 Commit: 4488fd8295011b37f683c964ae2012fe1b6a4044 Parents: a684a2e Author: Sunil G <[email protected]> Authored: Tue Jul 24 22:20:06 2018 +0530 Committer: Sunil G <[email protected]> Committed: Tue Jul 24 22:21:15 2018 +0530 ---------------------------------------------------------------------- .../scheduler/capacity/TestContainerResizing.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/4488fd82/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java index eacbf6e..307d5ae 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestContainerResizing.java @@ -45,6 +45,7 @@ import org.apache.hadoop.yarn.server.resourcemanager.MockRM; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.NullRMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp; +import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppState; import org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptState; import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainer; import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerEvent; @@ -58,7 +59,6 @@ import org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica .FiCaSchedulerNode; -import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.AppAttemptRemovedSchedulerEvent; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.NodeUpdateSchedulerEvent; import org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement.CandidateNodeSet; import org.apache.hadoop.yarn.util.resource.Resources; @@ -740,11 +740,14 @@ public class TestContainerResizing { @Test public void testIncreaseContainerUnreservedWhenApplicationCompleted() throws Exception { + // Disable relaunch app attempt on failure, in order to check + // resource usages for current app only. + conf.setInt(YarnConfiguration.RM_AM_MAX_ATTEMPTS, 1); /** * Similar to testIncreaseContainerUnreservedWhenContainerCompleted, when * application finishes, reserved increase container should be cancelled */ - MockRM rm1 = new MockRM() { + MockRM rm1 = new MockRM(conf) { @Override public RMNodeLabelsManager createNodeLabelManager() { return mgr; @@ -807,9 +810,14 @@ public class TestContainerResizing { Assert.assertEquals(6 * GB, app.getAppAttemptResourceUsage().getReserved().getMemorySize()); - // Kill the application - cs.handle(new AppAttemptRemovedSchedulerEvent(am1.getApplicationAttemptId(), - RMAppAttemptState.KILLED, false)); + // Kill the application by killing the AM container + ContainerId amContainer = + ContainerId.newContainerId(am1.getApplicationAttemptId(), 1); + cs.killContainer(cs.getRMContainer(amContainer)); + rm1.waitForState(am1.getApplicationAttemptId(), + RMAppAttemptState.FAILED); + rm1.waitForState(am1.getApplicationAttemptId().getApplicationId(), + RMAppState.FAILED); /* Check statuses after reservation satisfied */ // Increase request should be unreserved --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
