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

This commit is contained in:
Robert Kanter 2017-04-07 14:28:07 -07:00
parent d298f734a4
commit 63f7322522
2 changed files with 23 additions and 5 deletions

View File

@ -82,6 +82,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.
*/
@ -421,7 +439,7 @@ public class NodeManager extends CompositeService
return "NodeManager";
}
protected void shutDown() {
protected void shutDown(final int exitCode) {
new Thread() {
@Override
public void run() {
@ -432,7 +450,7 @@ public class NodeManager extends CompositeService
} finally {
if (shouldExitOnShutdownEvent
&& !ShutdownHookManager.get().isShutdownInProgress()) {
ExitUtil.terminate(-1);
ExitUtil.terminate(exitCode);
}
}
}
@ -457,7 +475,7 @@ public class NodeManager extends CompositeService
.rebootNodeStatusUpdaterAndRegisterWithRM();
} catch (YarnRuntimeException e) {
LOG.fatal("Error while rebooting NodeStatusUpdater.", e);
shutDown();
shutDown(NodeManagerStatus.EXCEPTION.getExitCode());
}
}
}.start();
@ -744,7 +762,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();