YARN-2597 MiniYARNCluster should propagate reason for AHS not starting
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a7201d63 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a7201d63 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a7201d63 Branch: refs/heads/HDFS-7966 Commit: a7201d635fc45b169ca3326bad48a3f781efe604 Parents: 723c31d Author: Steve Loughran <ste...@apache.org> Authored: Fri Sep 18 09:45:17 2015 +0100 Committer: Steve Loughran <ste...@apache.org> Committed: Fri Sep 18 09:45:35 2015 +0100 ---------------------------------------------------------------------- hadoop-yarn-project/CHANGES.txt | 3 ++ .../hadoop/yarn/server/MiniYARNCluster.java | 42 ++++++++++---------- 2 files changed, 24 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/a7201d63/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 90b0e82..8fe686d 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -445,6 +445,9 @@ Release 2.8.0 - UNRELEASED YARN-4149. yarn logs -am should provide an option to fetch all the log files (Varun Vasudev via xgong) + YARN-2597. MiniYARNCluster should propagate reason for AHS not starting. + (stevel) + OPTIMIZATIONS YARN-3339. TestDockerContainerExecutor should pull a single image and not http://git-wip-us.apache.org/repos/asf/hadoop/blob/a7201d63/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java index 319047d..a348390 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java @@ -37,6 +37,7 @@ import org.apache.hadoop.ha.HAServiceProtocol; import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.service.AbstractService; import org.apache.hadoop.service.CompositeService; +import org.apache.hadoop.service.ServiceStateException; import org.apache.hadoop.util.Shell; import org.apache.hadoop.util.Shell.ShellCommandExecutor; import org.apache.hadoop.yarn.api.protocolrecords.GetClusterMetricsRequest; @@ -708,32 +709,31 @@ public class MiniYARNCluster extends CompositeService { @Override protected synchronized void serviceStart() throws Exception { - try { - new Thread() { - public void run() { - appHistoryServer.start(); - }; - }.start(); - int waitCount = 0; - while (appHistoryServer.getServiceState() == STATE.INITED - && waitCount++ < 60) { - LOG.info("Waiting for Timeline Server to start..."); - Thread.sleep(1500); - } - if (appHistoryServer.getServiceState() != STATE.STARTED) { - // AHS could have failed. - throw new IOException( - "ApplicationHistoryServer failed to start. Final state is " - + appHistoryServer.getServiceState()); - } - super.serviceStart(); - } catch (Throwable t) { - throw new YarnRuntimeException(t); + + new Thread() { + public void run() { + appHistoryServer.start(); + }; + }.start(); + int waitCount = 0; + while (appHistoryServer.getServiceState() == STATE.INITED + && waitCount++ < 60) { + LOG.info("Waiting for Timeline Server to start..."); + Thread.sleep(1500); + } + if (appHistoryServer.getServiceState() != STATE.STARTED) { + // AHS could have failed. + IOException ioe = new IOException( + "ApplicationHistoryServer failed to start. Final state is " + + appHistoryServer.getServiceState()); + ioe.initCause(appHistoryServer.getFailureCause()); + throw ioe; } LOG.info("MiniYARN ApplicationHistoryServer address: " + getConfig().get(YarnConfiguration.TIMELINE_SERVICE_ADDRESS)); LOG.info("MiniYARN ApplicationHistoryServer web address: " + getConfig().get(YarnConfiguration.TIMELINE_SERVICE_WEBAPP_ADDRESS)); + super.serviceStart(); } @Override