You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ka...@apache.org on 2014/09/10 00:13:29 UTC
git commit: YARN-2526. SLS can deadlock when all the threads are
taken by AMSimulators. (Wei Yan via kasha)
Repository: hadoop
Updated Branches:
refs/heads/trunk 3e8f353c8 -> 28d99db99
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/trunk
Commit: 28d99db99236ff2a6e4a605802820e2b512225f9
Parents: 3e8f353
Author: Karthik Kambatla <ka...@apache.org>
Authored: Tue Sep 9 15:13:07 2014 -0700
Committer: Karthik Kambatla <ka...@apache.org>
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