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:
parent
c85026038a
commit
cbb1c76195
|
@ -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();
|
||||
|
|
|
@ -638,7 +638,7 @@ public class TestNodeManagerResync {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void shutDown() {
|
||||
protected void shutDown(int exitCode) {
|
||||
synchronized (isNMShutdownCalled) {
|
||||
isNMShutdownCalled.set(true);
|
||||
isNMShutdownCalled.notify();
|
||||
|
|
Loading…
Reference in New Issue