YARN-4431. Not necessary to do unRegisterNM() if NM get stop due to failed to connect to RM. (Junpin Du via rohithsharmaks)

This commit is contained in:
rohithsharmaks 2015-12-09 11:04:28 +05:30
parent 05a7fb3a9a
commit 6a6bbc51c4
2 changed files with 7 additions and 1 deletions

View File

@ -1031,6 +1031,9 @@ Release 2.8.0 - UNRELEASED
YARN-4408. Fix issue that NodeManager reports negative running containers.
(Robert Kanter via junping_du)
YARN-4431. Not necessary to do unRegisterNM() if NM get stop due to failed to connect
to RM. (Junping Du via rohithsharmaks)
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -134,6 +134,7 @@ public class NodeStatusUpdaterImpl extends AbstractService implements
private Runnable statusUpdaterRunnable;
private Thread statusUpdater;
private boolean failedToConnect = false;
private long rmIdentifier = ResourceManagerConstants.RM_INVALID_IDENTIFIER;
private boolean registeredWithRM = false;
Set<ContainerId> pendingContainersToRemove = new HashSet<ContainerId>();
@ -241,7 +242,7 @@ public class NodeStatusUpdaterImpl extends AbstractService implements
// the isStopped check is for avoiding multiple unregistrations.
if (this.registeredWithRM && !this.isStopped
&& !isNMUnderSupervisionWithRecoveryEnabled()
&& !context.getDecommissioned()) {
&& !context.getDecommissioned() && !failedToConnect) {
unRegisterNM();
}
// Interrupt the updater.
@ -823,6 +824,8 @@ public class NodeStatusUpdaterImpl extends AbstractService implements
//catch and throw the exception if tried MAX wait time to connect RM
dispatcher.getEventHandler().handle(
new NodeManagerEvent(NodeManagerEventType.SHUTDOWN));
// failed to connect to RM.
failedToConnect = true;
throw new YarnRuntimeException(e);
} catch (Throwable e) {