Return-Path: X-Original-To: apmail-hadoop-common-commits-archive@www.apache.org Delivered-To: apmail-hadoop-common-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 91F40112BB for ; Wed, 10 Sep 2014 05:48:46 +0000 (UTC) Received: (qmail 99464 invoked by uid 500); 10 Sep 2014 05:48:29 -0000 Delivered-To: apmail-hadoop-common-commits-archive@hadoop.apache.org Received: (qmail 99231 invoked by uid 500); 10 Sep 2014 05:48:28 -0000 Mailing-List: contact common-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-commits@hadoop.apache.org Received: (qmail 98724 invoked by uid 99); 10 Sep 2014 05:48:28 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 10 Sep 2014 05:48:28 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 4D42C93F6; Wed, 10 Sep 2014 05:48:28 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: jing9@apache.org To: common-commits@hadoop.apache.org Date: Wed, 10 Sep 2014 05:48:35 -0000 Message-Id: <652f29d6f9ed4a08a07755e9a9579baa@git.apache.org> In-Reply-To: <62b25c5a847d43b0a7714eb929f9f657@git.apache.org> References: <62b25c5a847d43b0a7714eb929f9f657@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [08/12] git commit: YARN-2526. SLS can deadlock when all the threads are taken by AMSimulators. (Wei Yan via kasha) YARN-2526. SLS can deadlock when all the threads are taken by AMSimulators. (Wei Yan via kasha) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/28d99db9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/28d99db9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/28d99db9 Branch: refs/heads/HDFS-6584 Commit: 28d99db99236ff2a6e4a605802820e2b512225f9 Parents: 3e8f353 Author: Karthik Kambatla Authored: Tue Sep 9 15:13:07 2014 -0700 Committer: Karthik Kambatla Committed: Tue Sep 9 15:13:16 2014 -0700 ---------------------------------------------------------------------- .../yarn/sls/appmaster/MRAMSimulator.java | 43 +++++++++++--------- hadoop-yarn-project/CHANGES.txt | 3 ++ 2 files changed, 26 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/28d99db9/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/MRAMSimulator.java ---------------------------------------------------------------------- diff --git a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/MRAMSimulator.java b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/MRAMSimulator.java index fb70205..da267a1 100644 --- a/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/MRAMSimulator.java +++ b/hadoop-tools/hadoop-sls/src/main/java/org/apache/hadoop/yarn/sls/appmaster/MRAMSimulator.java @@ -179,26 +179,8 @@ public class MRAMSimulator extends AMSimulator { return rm.getApplicationMasterService().allocate(request); } }); - - // waiting until the AM container is allocated - while (true) { - if (response != null && ! response.getAllocatedContainers().isEmpty()) { - // get AM container - Container container = response.getAllocatedContainers().get(0); - se.getNmMap().get(container.getNodeId()) - .addNewContainer(container, -1L); - // start AM container - amContainer = container; - LOG.debug(MessageFormat.format("Application {0} starts its " + - "AM container ({1}).", appId, amContainer.getId())); - isAMContainerRunning = true; - break; - } - // this sleep time is different from HeartBeat - Thread.sleep(1000); - // send out empty request - sendContainerRequest(); - response = responseQueue.take(); + if (response != null) { + responseQueue.put(response); } } @@ -206,6 +188,26 @@ public class MRAMSimulator extends AMSimulator { @SuppressWarnings("unchecked") protected void processResponseQueue() throws InterruptedException, YarnException, IOException { + // Check whether receive the am container + if (!isAMContainerRunning) { + if (!responseQueue.isEmpty()) { + AllocateResponse response = responseQueue.take(); + if (response != null + && !response.getAllocatedContainers().isEmpty()) { + // Get AM container + Container container = response.getAllocatedContainers().get(0); + se.getNmMap().get(container.getNodeId()) + .addNewContainer(container, -1L); + // Start AM container + amContainer = container; + LOG.debug(MessageFormat.format("Application {0} starts its " + + "AM container ({1}).", appId, amContainer.getId())); + isAMContainerRunning = true; + } + } + return; + } + while (! responseQueue.isEmpty()) { AllocateResponse response = responseQueue.take(); @@ -262,6 +264,7 @@ public class MRAMSimulator extends AMSimulator { LOG.debug(MessageFormat.format("Application {0} sends out event " + "to clean up its AM container.", appId)); isFinished = true; + break; } // check allocated containers http://git-wip-us.apache.org/repos/asf/hadoop/blob/28d99db9/hadoop-yarn-project/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index d799c28..7eaf1c8 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -302,6 +302,9 @@ Release 2.6.0 - UNRELEASED YARN-2519. Credential Provider related unit tests failed on Windows. (Xiaoyu Yao via cnauroth) + YARN-2526. SLS can deadlock when all the threads are taken by AMSimulators. + (Wei Yan via kasha) + Release 2.5.1 - UNRELEASED INCOMPATIBLE CHANGES