From 27715ec63bd77f1d31ee922b7daba85071da54ca Mon Sep 17 00:00:00 2001 From: Zhijie Shen Date: Sun, 2 Nov 2014 15:20:40 -0800 Subject: [PATCH] YARN-2785. Fixed intermittent TestContainerResourceUsage failure. Contributed by Varun Vasudev. --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../TestContainerResourceUsage.java | 21 ++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 25b16350965..6f91bd8d91b 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -836,6 +836,9 @@ Release 2.6.0 - UNRELEASED beyond HFDS delegation-token expiry even when RM is a proxy-user (YARN-2704). (Jian He via vinodkv) + YARN-2785. Fixed intermittent TestContainerResourceUsage failure. (Varun Vasudev + via zjshen) + Release 2.5.1 - 2014-09-05 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java index e0221aa75ba..c200df46c70 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java @@ -70,7 +70,7 @@ public void setup() throws UnknownHostException { public void tearDown() { } - @Test (timeout = 60000) + @Test (timeout = 120000) public void testUsageWithOneAttemptAndOneContainer() throws Exception { MockRM rm = new MockRM(conf); rm.start(); @@ -102,7 +102,12 @@ public void testUsageWithOneAttemptAndOneContainer() throws Exception { .getRMContainer(attempt0.getMasterContainer().getId()); // Allow metrics to accumulate. - Thread.sleep(1000); + int sleepInterval = 1000; + int cumulativeSleepTime = 0; + while (rmAppMetrics.getMemorySeconds() <= 0 && cumulativeSleepTime < 5000) { + Thread.sleep(sleepInterval); + cumulativeSleepTime += sleepInterval; + } rmAppMetrics = app0.getRMAppMetrics(); Assert.assertTrue( @@ -127,7 +132,7 @@ public void testUsageWithOneAttemptAndOneContainer() throws Exception { rm.stop(); } - @Test (timeout = 60000) + @Test (timeout = 120000) public void testUsageWithMultipleContainersAndRMRestart() throws Exception { // Set max attempts to 1 so that when the first attempt fails, the app // won't try to start a new one. @@ -180,8 +185,14 @@ public void testUsageWithMultipleContainersAndRMRestart() throws Exception { .getSchedulerAppInfo(attempt0.getAppAttemptId()) .getLiveContainers(); - // Give the metrics time to accumulate. - Thread.sleep(1000); + // Allow metrics to accumulate. + int sleepInterval = 1000; + int cumulativeSleepTime = 0; + while (app0.getRMAppMetrics().getMemorySeconds() <= 0 + && cumulativeSleepTime < 5000) { + Thread.sleep(sleepInterval); + cumulativeSleepTime += sleepInterval; + } // Stop all non-AM containers for (Container c : conts) {