YARN-3585. NodeManager cannot exit on SHUTDOWN event triggered and NM recovery is enabled. Contributed by Rohith Sharmaks
(cherry picked from commit e13b671aa510f553f4a6a232b4694b6a4cce88ae) (cherry picked from commit 752caa95a40d899e1bf98bc907e91aec2bb57073) (cherry picked from commit 13c4db632b0e7f19dcfa883c2492431c2c7d0799)
This commit is contained in:
parent
a2434dcf2a
commit
193d8d3667
@ -153,6 +153,9 @@ Release 2.6.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.6.0 - 2014-11-18
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -37,6 +37,7 @@
|
||||
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.ReflectionUtils;
|
||||
import org.apache.hadoop.util.ShutdownHookManager;
|
||||
import org.apache.hadoop.util.StringUtils;
|
||||
@ -88,6 +89,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());
|
||||
@ -287,7 +289,16 @@ protected void shutDown() {
|
||||
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();
|
||||
}
|
||||
@ -463,7 +474,9 @@ private void initAndStartNodeManager(Configuration conf, boolean hasToReboot) {
|
||||
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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user