diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 36630f06b60..65d19bff9d8 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -42,6 +42,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; 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 class TestContainer { 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 class TestContainer { 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 class TestContainer { } ++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 class TestContainer { public int getLocalResourceCount() { return localResources.size(); } + + public String getDiagnostics() { + return c.cloneAndGetContainerStatus().getDiagnostics(); + } } }