From b505bf9e582f5bca59be28296a4b4a640b3389eb Mon Sep 17 00:00:00 2001 From: Xuan Date: Thu, 29 Oct 2015 17:36:36 -0700 Subject: [PATCH] YARN-4313. Race condition in MiniMRYarnCluster when getting history server address. Contributed by Jian He (cherry picked from commit 7412ff48eeb967c972c19c1370c77a41c5b3b81f) --- .../org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java | 5 ++++- hadoop-yarn-project/CHANGES.txt | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java index 1dd6fca919f..352183448f7 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java @@ -190,6 +190,7 @@ private class JobHistoryServerWrapper extends AbstractService { public JobHistoryServerWrapper() { super(JobHistoryServerWrapper.class.getName()); } + private volatile boolean jhsStarted = false; @Override public synchronized void serviceStart() throws Exception { @@ -211,9 +212,11 @@ public synchronized void serviceStart() throws Exception { new Thread() { public void run() { historyServer.start(); + jhsStarted = true; }; }.start(); - while (historyServer.getServiceState() == STATE.INITED) { + + while (!jhsStarted) { LOG.info("Waiting for HistoryServer to start..."); Thread.sleep(1500); } diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 6cc85abfdd2..b7c822e00aa 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -1092,6 +1092,9 @@ Release 2.7.2 - UNRELEASED YARN-4183. Enabling generic application history forces every job to get a timeline service delegation token (Mit Desai via jeagles) + YARN-4313. Race condition in MiniMRYarnCluster when getting history server + address. (Jian He via xgong) + Release 2.7.1 - 2015-07-06 INCOMPATIBLE CHANGES