YARN-6368. Decommissioning an NM results in a -1 exit code (miklos.szegedi@cloudera.com via rkanter)

(cherry picked from commit 63f7322522)
This commit is contained in:
Robert Kanter 2017-04-07 14:28:07 -07:00
parent c85026038a
commit cbb1c76195
2 changed files with 23 additions and 5 deletions

View File

@ -80,6 +80,24 @@ import com.google.common.annotations.VisibleForTesting;
public class NodeManager extends CompositeService
implements EventHandler<NodeManagerEvent> {
/**
* Node manager return status codes.
*/
public enum NodeManagerStatus {
NO_ERROR(0),
EXCEPTION(1);
private int exitCode;
NodeManagerStatus(int exitCode) {
this.exitCode = exitCode;
}
public int getExitCode() {
return exitCode;
}
}
/**
* Priority of the NodeManager shutdown hook.
*/
@ -408,7 +426,7 @@ public class NodeManager extends CompositeService
return "NodeManager";
}
protected void shutDown() {
protected void shutDown(final int exitCode) {
new Thread() {
@Override
public void run() {
@ -419,7 +437,7 @@ public class NodeManager extends CompositeService
} finally {
if (shouldExitOnShutdownEvent
&& !ShutdownHookManager.get().isShutdownInProgress()) {
ExitUtil.terminate(-1);
ExitUtil.terminate(exitCode);
}
}
}
@ -444,7 +462,7 @@ public class NodeManager extends CompositeService
.rebootNodeStatusUpdaterAndRegisterWithRM();
} catch (YarnRuntimeException e) {
LOG.fatal("Error while rebooting NodeStatusUpdater.", e);
shutDown();
shutDown(NodeManagerStatus.EXCEPTION.getExitCode());
}
}
}.start();
@ -700,7 +718,7 @@ public class NodeManager extends CompositeService
public void handle(NodeManagerEvent event) {
switch (event.getType()) {
case SHUTDOWN:
shutDown();
shutDown(NodeManagerStatus.NO_ERROR.getExitCode());
break;
case RESYNC:
resyncWithRM();

View File

@ -638,7 +638,7 @@ public class TestNodeManagerResync {
}
@Override
protected void shutDown() {
protected void shutDown(int exitCode) {
synchronized (isNMShutdownCalled) {
isNMShutdownCalled.set(true);
isNMShutdownCalled.notify();