YARN-4556. TestFifoScheduler.testResourceOverCommit fails. Contributed by Akihiro Suda (cherry picked from commit 3dce486d88895dcdf443f4d0064d1fb6e9116045)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/b726ae08 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/b726ae08 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/b726ae08 Branch: refs/heads/branch-2.8 Commit: b726ae08768084c1e77a9d62d23fa62606d1e787 Parents: 22403be Author: Eric Payne <[email protected]> Authored: Thu Apr 21 21:15:12 2016 +0000 Committer: Eric Payne <[email protected]> Committed: Thu Apr 21 22:01:07 2016 +0000 ---------------------------------------------------------------------- .../scheduler/capacity/TestCapacityScheduler.java | 16 +++++++++++++--- .../scheduler/fifo/TestFifoScheduler.java | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/b726ae08/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestCapacityScheduler.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/TestCapacityScheduler.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/TestCapacityScheduler.java index 4226777..af0d6c9 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/TestCapacityScheduler.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/TestCapacityScheduler.java @@ -813,6 +813,7 @@ public class TestCapacityScheduler { @Test public void testResourceOverCommit() throws Exception { + int waitCount; Configuration conf = new Configuration(); conf.setClass(YarnConfiguration.RM_SCHEDULER, CapacityScheduler.class, ResourceScheduler.class); @@ -867,9 +868,18 @@ public class TestCapacityScheduler { UpdateNodeResourceRequest.newInstance(nodeResourceMap); AdminService as = ((MockRM)rm).getAdminService(); as.updateNodeResource(request); - + + waitCount = 0; + while (waitCount++ != 20) { + report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId()); + if (report_nm1.getAvailableResource().getMemory() != 0) { + break; + } + LOG.info("Waiting for RMNodeResourceUpdateEvent to be handled... Tried " + + waitCount + " times already.."); + Thread.sleep(1000); + } // Now, the used resource is still 4 GB, and available resource is minus value. - report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId()); Assert.assertEquals(4 * GB, report_nm1.getUsedResource().getMemory()); Assert.assertEquals(-2 * GB, report_nm1.getAvailableResource().getMemory()); @@ -877,7 +887,7 @@ public class TestCapacityScheduler { ContainerStatus containerStatus = BuilderUtils.newContainerStatus( c1.getId(), ContainerState.COMPLETE, "", 0, c1.getResource()); nm1.containerStatus(containerStatus); - int waitCount = 0; + waitCount = 0; while (attempt1.getJustFinishedContainers().size() < 1 && waitCount++ != 20) { LOG.info("Waiting for containers to be finished for app 1... Tried " http://git-wip-us.apache.org/repos/asf/hadoop/blob/b726ae08/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.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/fifo/TestFifoScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java index 86a017e..bbcc800 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java @@ -1095,6 +1095,7 @@ public class TestFifoScheduler { @Test(timeout = 60000) public void testResourceOverCommit() throws Exception { + int waitCount; MockRM rm = new MockRM(conf); rm.start(); @@ -1147,9 +1148,18 @@ public class TestFifoScheduler { UpdateNodeResourceRequest.newInstance(nodeResourceMap); rm.getAdminService().updateNodeResource(request); + waitCount = 0; + while (waitCount++ != 20) { + report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId()); + if (report_nm1.getAvailableResource().getMemory() != 0) { + break; + } + LOG.info("Waiting for RMNodeResourceUpdateEvent to be handled... Tried " + + waitCount + " times already.."); + Thread.sleep(1000); + } // Now, the used resource is still 4 GB, and available resource is minus // value. - report_nm1 = rm.getResourceScheduler().getNodeReport(nm1.getNodeId()); Assert.assertEquals(4 * GB, report_nm1.getUsedResource().getMemory()); Assert.assertEquals(-2 * GB, report_nm1.getAvailableResource().getMemory()); @@ -1159,7 +1169,7 @@ public class TestFifoScheduler { BuilderUtils.newContainerStatus(c1.getId(), ContainerState.COMPLETE, "", 0, c1.getResource()); nm1.containerStatus(containerStatus); - int waitCount = 0; + waitCount = 0; while (attempt1.getJustFinishedContainers().size() < 1 && waitCount++ != 20) { LOG.info("Waiting for containers to be finished for app 1... Tried " + waitCount + " times already.."); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
