You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-commits@hadoop.apache.org by bo...@apache.org on 2012/11/10 00:52:34 UTC
svn commit: r1407697 - in
/hadoop/common/branches/branch-0.23/hadoop-yarn-project: CHANGES.txt
hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
Author: bobby
Date: Fri Nov 9 23:52:34 2012
New Revision: 1407697
URL: http://svn.apache.org/viewvc?rev=1407697&view=rev
Log:
YARN-206. TestApplicationCleanup.testContainerCleanup occasionally fails (jlowe via bobby)
Modified:
hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt
hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
Modified: hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt?rev=1407697&r1=1407696&r2=1407697&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt (original)
+++ hadoop/common/branches/branch-0.23/hadoop-yarn-project/CHANGES.txt Fri Nov 9 23:52:34 2012
@@ -77,6 +77,9 @@ Release 0.23.5 - UNRELEASED
YARN-201. Fix CapacityScheduler to be less conservative for starved
off-switch requests. (jlowe via acmurthy)
+ YARN-206. TestApplicationCleanup.testContainerCleanup occasionally fails
+ (jlowe via bobby)
+
Release 0.23.4 - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java?rev=1407697&r1=1407696&r2=1407697&view=diff
==============================================================================
--- hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java (original)
+++ hadoop/common/branches/branch-0.23/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestApplicationCleanup.java Fri Nov 9 23:52:34 2012
@@ -76,41 +76,40 @@ public class TestApplicationCleanup {
new ArrayList<ContainerId>());
//kick the scheduler
- nm1.nodeHeartbeat(true);
+ HeartbeatResponse resp = nm1.nodeHeartbeat(true);
List<Container> conts = am.allocate(new ArrayList<ResourceRequest>(),
new ArrayList<ContainerId>()).getAllocatedContainers();
int contReceived = conts.size();
int waitCount = 0;
- while (contReceived < request && waitCount++ < 20) {
+ while (contReceived < request && waitCount++ < 200) {
+ LOG.info("Got " + contReceived + " containers. Waiting to get "
+ + request);
+ Thread.sleep(100);
conts = am.allocate(new ArrayList<ResourceRequest>(),
new ArrayList<ContainerId>()).getAllocatedContainers();
contReceived += conts.size();
- LOG.info("Got " + contReceived + " containers. Waiting to get "
- + request);
- Thread.sleep(2000);
}
- Assert.assertEquals(request, conts.size());
+ Assert.assertEquals(request, contReceived);
am.unregisterAppAttempt();
am.waitForState(RMAppAttemptState.FINISHED);
- int cleanedConts = 0;
- int cleanedApps = 0;
- List<ContainerId> contsToClean = null;
- List<ApplicationId> apps = null;
-
//currently only containers are cleaned via this
//AM container is cleaned via container launcher
+ List<ContainerId> contsToClean = resp.getContainersToCleanupList();
+ List<ApplicationId> apps = resp.getApplicationsToCleanupList();
+ int cleanedConts = contsToClean.size();
+ int cleanedApps = apps.size();
waitCount = 0;
- while ((cleanedConts < 3 || cleanedApps < 1) && waitCount++ < 20) {
- HeartbeatResponse resp = nm1.nodeHeartbeat(true);
- contsToClean = resp.getContainersToCleanupList();
- apps = resp.getApplicationsToCleanupList();
+ while ((cleanedConts < 3 || cleanedApps < 1) && waitCount++ < 200) {
LOG.info("Waiting to get cleanup events.. cleanedConts: "
+ cleanedConts + " cleanedApps: " + cleanedApps);
+ Thread.sleep(100);
+ resp = nm1.nodeHeartbeat(true);
+ contsToClean = resp.getContainersToCleanupList();
+ apps = resp.getApplicationsToCleanupList();
cleanedConts += contsToClean.size();
cleanedApps += apps.size();
- Thread.sleep(1000);
}
Assert.assertEquals(1, apps.size());
@@ -168,20 +167,20 @@ public class TestApplicationCleanup {
new ArrayList<ContainerId>()).getAllocatedContainers();
int contReceived = conts.size();
int waitCount = 0;
- while (contReceived < request && waitCount++ < 20) {
+ while (contReceived < request && waitCount++ < 200) {
+ LOG.info("Got " + contReceived + " containers. Waiting to get "
+ + request);
+ Thread.sleep(100);
conts = am.allocate(new ArrayList<ResourceRequest>(),
new ArrayList<ContainerId>()).getAllocatedContainers();
dispatcher.await();
contReceived += conts.size();
- LOG.info("Got " + contReceived + " containers. Waiting to get "
- + request);
- Thread.sleep(2000);
}
- Assert.assertEquals(request, conts.size());
+ Assert.assertEquals(request, contReceived);
// Release a container.
ArrayList<ContainerId> release = new ArrayList<ContainerId>();
- release.add(conts.get(1).getId());
+ release.add(conts.get(0).getId());
am.allocate(new ArrayList<ResourceRequest>(), release);
dispatcher.await();
@@ -192,7 +191,7 @@ public class TestApplicationCleanup {
new HashMap<ApplicationId, List<ContainerStatus>>();
ArrayList<ContainerStatus> containerStatusList =
new ArrayList<ContainerStatus>();
- containerStatusList.add(BuilderUtils.newContainerStatus(conts.get(1)
+ containerStatusList.add(BuilderUtils.newContainerStatus(conts.get(0)
.getId(), ContainerState.RUNNING, "nothing", 0));
containerStatuses.put(app.getApplicationId(), containerStatusList);
@@ -201,13 +200,13 @@ public class TestApplicationCleanup {
List<ContainerId> contsToClean = resp.getContainersToCleanupList();
int cleanedConts = contsToClean.size();
waitCount = 0;
- while (cleanedConts < 1 && waitCount++ < 20) {
+ while (cleanedConts < 1 && waitCount++ < 200) {
+ LOG.info("Waiting to get cleanup events.. cleanedConts: " + cleanedConts);
+ Thread.sleep(100);
resp = nm1.nodeHeartbeat(true);
dispatcher.await();
contsToClean = resp.getContainersToCleanupList();
- LOG.info("Waiting to get cleanup events.. cleanedConts: " + cleanedConts);
cleanedConts += contsToClean.size();
- Thread.sleep(1000);
}
LOG.info("Got cleanup for " + contsToClean.get(0));
Assert.assertEquals(1, cleanedConts);
@@ -218,7 +217,7 @@ public class TestApplicationCleanup {
+ "NM getting cleanup");
containerStatuses.clear();
containerStatusList.clear();
- containerStatusList.add(BuilderUtils.newContainerStatus(conts.get(1)
+ containerStatusList.add(BuilderUtils.newContainerStatus(conts.get(0)
.getId(), ContainerState.RUNNING, "nothing", 0));
containerStatuses.put(app.getApplicationId(), containerStatusList);
@@ -229,13 +228,13 @@ public class TestApplicationCleanup {
// The cleanup list won't be instantaneous as it is given out by scheduler
// and not RMNodeImpl.
waitCount = 0;
- while (cleanedConts < 1 && waitCount++ < 20) {
+ while (cleanedConts < 1 && waitCount++ < 200) {
+ LOG.info("Waiting to get cleanup events.. cleanedConts: " + cleanedConts);
+ Thread.sleep(100);
resp = nm1.nodeHeartbeat(true);
dispatcher.await();
contsToClean = resp.getContainersToCleanupList();
- LOG.info("Waiting to get cleanup events.. cleanedConts: " + cleanedConts);
cleanedConts += contsToClean.size();
- Thread.sleep(1000);
}
LOG.info("Got cleanup for " + contsToClean.get(0));
Assert.assertEquals(1, cleanedConts);