You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ae...@apache.org on 2016/02/01 19:41:03 UTC
[44/50] [abbrv] hadoop git commit: YARN-4615. Fix random test failure
in TestAbstractYarnScheduler#testResourceRequestRecoveryToTheRightAppAttempt.
(Sunil G via rohithsharmaks)
YARN-4615. Fix random test failure in TestAbstractYarnScheduler#testResourceRequestRecoveryToTheRightAppAttempt. (Sunil G via rohithsharmaks)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2673cbaf
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2673cbaf
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2673cbaf
Branch: refs/heads/HDFS-7240
Commit: 2673cbaf556eb4d0e44519cdbb8c6f0f02412a21
Parents: 772ea7b
Author: Rohith Sharma K S <ro...@apache.org>
Authored: Mon Feb 1 10:43:56 2016 +0530
Committer: Rohith Sharma K S <ro...@apache.org>
Committed: Mon Feb 1 10:43:56 2016 +0530
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 ++
.../yarn/server/resourcemanager/MockRM.java | 32 +++++++++++++++-----
.../scheduler/TestAbstractYarnScheduler.java | 5 ++-
3 files changed, 30 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/2673cbaf/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index d82a9be..fd9f5cf 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -178,6 +178,9 @@ Release 2.9.0 - UNRELEASED
YARN-4543. Fix random test failure in TestNodeStatusUpdater.testStopReentrant
(Akihiro Suda via rohithsharmaks)
+ YARN-4615. Fix random test failure in TestAbstractYarnScheduler#testResource
+ RequestRecoveryToTheRightAppAttempt. (Sunil G via rohithsharmaks)
+
Release 2.8.0 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/2673cbaf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.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/MockRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
index a5d14c3..f6b1f43 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
@@ -202,15 +202,33 @@ public class MockRM extends ResourceManager {
public void waitForContainerState(ContainerId containerId,
RMContainerState state) throws Exception {
- int timeoutSecs = 0;
+ // This method will assert if state is not expected after timeout.
+ Assert.assertTrue(waitForContainerState(containerId, state, 8 * 1000));
+ }
+
+ public boolean waitForContainerState(ContainerId containerId,
+ RMContainerState containerState, int timeoutMillisecs) throws Exception {
RMContainer container = getResourceScheduler().getRMContainer(containerId);
- while ((container == null || container.getState() != state)
- && timeoutSecs++ < 40) {
- System.out.println(
- "Waiting for" + containerId + " state to be:" + state.name());
- Thread.sleep(200);
+ int timeoutSecs = 0;
+ while (((container == null) || !containerState.equals(container.getState()))
+ && timeoutSecs++ < timeoutMillisecs / 100) {
+ if(container == null){
+ container = getResourceScheduler().getRMContainer(containerId);
+ }
+ System.out.println("Container : " + containerId +
+ " Waiting for state : " + containerState);
+
+ Thread.sleep(100);
+
+ if (timeoutMillisecs <= timeoutSecs * 100) {
+ return false;
+ }
}
- Assert.assertTrue(container.getState() == state);
+
+ System.out.println("Container State is : " + container.getState());
+ Assert.assertEquals("Container state is not correct (timedout)",
+ containerState, container.getState());
+ return true;
}
public void waitForContainerAllocated(MockNM nm, ContainerId containerId)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/2673cbaf/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.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/TestAbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
index fc2d9c4..05c897f 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestAbstractYarnScheduler.java
@@ -52,10 +52,8 @@ import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainer;
import org.apache.hadoop.yarn.server.resourcemanager.rmcontainer.RMContainerState;
import org.apache.hadoop.yarn.server.resourcemanager.rmnode.RMNode;
import org.apache.hadoop.yarn.server.resourcemanager.scheduler.common.fica.FiCaSchedulerApp;
-import org.apache.hadoop.yarn.server.resourcemanager.scheduler.event.ContainerPreemptEvent;
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.SchedulerEventType;
import org.apache.hadoop.yarn.util.resource.Resources;
import org.junit.Assert;
import org.junit.Test;
@@ -568,7 +566,8 @@ public class TestAbstractYarnScheduler extends ParameterizedSchedulerTestBase {
// AM crashes, and a new app-attempt gets created
node.nodeHeartbeat(applicationAttemptOneID, 1, ContainerState.COMPLETE);
- rm.waitForState(node, am1ContainerID, RMContainerState.COMPLETED);
+ rm.waitForContainerState(am1ContainerID, RMContainerState.COMPLETED,
+ 30 * 1000);
RMAppAttempt rmAppAttempt2 = MockRM.waitForAttemptScheduled(rmApp, rm);
ApplicationAttemptId applicationAttemptTwoID =
rmAppAttempt2.getAppAttemptId();