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 jl...@apache.org on 2015/06/03 21:44:57 UTC
hadoop git commit: YARN-3585. NodeManager cannot exit on SHUTDOWN
event triggered and NM recovery is enabled. Contributed by Rohith Sharmaks
Repository: hadoop
Updated Branches:
refs/heads/trunk dbc4f6493 -> e13b671aa
YARN-3585. NodeManager cannot exit on SHUTDOWN event triggered and NM recovery is enabled. Contributed by Rohith Sharmaks
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/e13b671a
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/e13b671a
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/e13b671a
Branch: refs/heads/trunk
Commit: e13b671aa510f553f4a6a232b4694b6a4cce88ae
Parents: dbc4f64
Author: Jason Lowe <jl...@apache.org>
Authored: Wed Jun 3 19:44:07 2015 +0000
Committer: Jason Lowe <jl...@apache.org>
Committed: Wed Jun 3 19:44:07 2015 +0000
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 +++
.../yarn/server/nodemanager/NodeManager.java | 17 +++++++++++++++--
2 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/e13b671a/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index c5ba58c..64f6abb 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -615,6 +615,9 @@ Release 2.7.1 - UNRELEASED
YARN-3725. App submission via REST API is broken in secure mode due to
Timeline DT service address is empty. (Zhijie Shen via wangda)
+ YARN-3585. NodeManager cannot exit on SHUTDOWN event triggered and NM
+ recovery is enabled (Rohith Sharmaks via jlowe)
+
Release 2.7.0 - 2015-04-20
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/e13b671a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java
index 03e17c8..185ba12 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/NodeManager.java
@@ -38,6 +38,7 @@ import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
import org.apache.hadoop.security.Credentials;
import org.apache.hadoop.security.SecurityUtil;
import org.apache.hadoop.service.CompositeService;
+import org.apache.hadoop.util.ExitUtil;
import org.apache.hadoop.util.GenericOptionsParser;
import org.apache.hadoop.util.NodeHealthScriptRunner;
import org.apache.hadoop.util.ReflectionUtils;
@@ -94,6 +95,7 @@ public class NodeManager extends CompositeService
private AtomicBoolean isStopping = new AtomicBoolean(false);
private boolean rmWorkPreservingRestartEnabled;
+ private boolean shouldExitOnShutdownEvent = false;
public NodeManager() {
super(NodeManager.class.getName());
@@ -344,7 +346,16 @@ public class NodeManager extends CompositeService
new Thread() {
@Override
public void run() {
- NodeManager.this.stop();
+ try {
+ NodeManager.this.stop();
+ } catch (Throwable t) {
+ LOG.error("Error while shutting down NodeManager", t);
+ } finally {
+ if (shouldExitOnShutdownEvent
+ && !ShutdownHookManager.get().isShutdownInProgress()) {
+ ExitUtil.terminate(-1);
+ }
+ }
}
}.start();
}
@@ -530,7 +541,9 @@ public class NodeManager extends CompositeService
nodeManagerShutdownHook = new CompositeServiceShutdownHook(this);
ShutdownHookManager.get().addShutdownHook(nodeManagerShutdownHook,
SHUTDOWN_HOOK_PRIORITY);
-
+ // System exit should be called only when NodeManager is instantiated from
+ // main() funtion
+ this.shouldExitOnShutdownEvent = true;
this.init(conf);
this.start();
} catch (Throwable t) {