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
|
public class NodeManager extends CompositeService
|
||||||
implements EventHandler<NodeManagerEvent> {
|
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.
|
* Priority of the NodeManager shutdown hook.
|
||||||
*/
|
*/
|
||||||
|
@ -408,7 +426,7 @@ public class NodeManager extends CompositeService
|
||||||
return "NodeManager";
|
return "NodeManager";
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void shutDown() {
|
protected void shutDown(final int exitCode) {
|
||||||
new Thread() {
|
new Thread() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -419,7 +437,7 @@ public class NodeManager extends CompositeService
|
||||||
} finally {
|
} finally {
|
||||||
if (shouldExitOnShutdownEvent
|
if (shouldExitOnShutdownEvent
|
||||||
&& !ShutdownHookManager.get().isShutdownInProgress()) {
|
&& !ShutdownHookManager.get().isShutdownInProgress()) {
|
||||||
ExitUtil.terminate(-1);
|
ExitUtil.terminate(exitCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -444,7 +462,7 @@ public class NodeManager extends CompositeService
|
||||||
.rebootNodeStatusUpdaterAndRegisterWithRM();
|
.rebootNodeStatusUpdaterAndRegisterWithRM();
|
||||||
} catch (YarnRuntimeException e) {
|
} catch (YarnRuntimeException e) {
|
||||||
LOG.fatal("Error while rebooting NodeStatusUpdater.", e);
|
LOG.fatal("Error while rebooting NodeStatusUpdater.", e);
|
||||||
shutDown();
|
shutDown(NodeManagerStatus.EXCEPTION.getExitCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
|
@ -700,7 +718,7 @@ public class NodeManager extends CompositeService
|
||||||
public void handle(NodeManagerEvent event) {
|
public void handle(NodeManagerEvent event) {
|
||||||
switch (event.getType()) {
|
switch (event.getType()) {
|
||||||
case SHUTDOWN:
|
case SHUTDOWN:
|
||||||
shutDown();
|
shutDown(NodeManagerStatus.NO_ERROR.getExitCode());
|
||||||
break;
|
break;
|
||||||
case RESYNC:
|
case RESYNC:
|
||||||
resyncWithRM();
|
resyncWithRM();
|
||||||
|
|
|
@ -638,7 +638,7 @@ public class TestNodeManagerResync {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void shutDown() {
|
protected void shutDown(int exitCode) {
|
||||||
synchronized (isNMShutdownCalled) {
|
synchronized (isNMShutdownCalled) {
|
||||||
isNMShutdownCalled.set(true);
|
isNMShutdownCalled.set(true);
|
||||||
isNMShutdownCalled.notify();
|
isNMShutdownCalled.notify();
|
||||||
|
|
Loading…
Reference in New Issue