From 4466d8653f5e85e2cbee5f3191f9e842513eaf00 Mon Sep 17 00:00:00 2001 From: Vinod Kumar Vavilapalli Date: Tue, 16 Jul 2013 00:57:41 +0000 Subject: [PATCH] YARN-523. Modified a test-case to validate container diagnostics on localization failures. Contributed by Jian He. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1503532 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-yarn-project/CHANGES.txt | 3 +++ .../containermanager/container/TestContainer.java | 13 ++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 2aa5c5b30f4..41e7d314756 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -59,6 +59,9 @@ Release 2.1.1-beta - UNRELEASED YARN-295. Fixed a race condition in ResourceManager RMAppAttempt state machine. (Mayank Bansal via vinodkv) + YARN-523. Modified a test-case to validate container diagnostics on + localization failures. (Jian He via vinodkv) + Release 2.1.0-beta - 2013-07-02 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java index 2230ee2fd9c..b7ee398b04f 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/TestContainer.java @@ -41,6 +41,8 @@ import java.util.Map.Entry; import java.util.Random; +import junit.framework.Assert; + import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.yarn.api.records.ContainerId; @@ -80,7 +82,7 @@ public class TestContainer { final NodeManagerMetrics metrics = NodeManagerMetrics.create(); final Configuration conf = new YarnConfiguration(); - + final String FAKE_LOCALIZATION_ERROR = "Fake localization error"; /** * Verify correct container request events sent to localizer. @@ -294,6 +296,7 @@ public void testResourceLocalizedOnLocalizationFailed() throws Exception { wc.localizeResourcesFromInvalidState(failCount); assertEquals(ContainerState.LOCALIZATION_FAILED, wc.c.getContainerState()); verifyCleanupCall(wc); + Assert.assertTrue(wc.getDiagnostics().contains(FAKE_LOCALIZATION_ERROR)); } finally { if (wc != null) { wc.finished(); @@ -663,7 +666,7 @@ public void failLocalizeSpecificResource(String rsrcKey) throws URISyntaxException { LocalResource rsrc = localResources.get(rsrcKey); LocalResourceRequest req = new LocalResourceRequest(rsrc); - Exception e = new Exception("Fake localization error"); + Exception e = new Exception(FAKE_LOCALIZATION_ERROR); c.handle(new ContainerResourceFailedEvent(c.getContainerId(), req, e .getMessage())); drainDispatcherEvents(); @@ -679,7 +682,7 @@ public void failLocalizeResources(int failRsrcCount) } ++counter; LocalResourceRequest req = new LocalResourceRequest(rsrc.getValue()); - Exception e = new Exception("Fake localization error"); + Exception e = new Exception(FAKE_LOCALIZATION_ERROR); c.handle(new ContainerResourceFailedEvent(c.getContainerId(), req, e.getMessage())); } @@ -725,5 +728,9 @@ public void containerKilledOnRequest() { public int getLocalResourceCount() { return localResources.size(); } + + public String getDiagnostics() { + return c.cloneAndGetContainerStatus().getDiagnostics(); + } } }