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 10:50:43 +05:30
parent ada9c2c410
commit 15c3e7ffe3
2 changed files with 7 additions and 1 deletions

View File

@ -1108,6 +1108,9 @@ Release 2.8.0 - UNRELEASED
YARN-4392. ApplicationCreatedEvent event time resets after RM restart/failover.
(Naganarasimha G R and Xuan Gong via xgong)
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 @@ protected void serviceStop() throws Exception {
// 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 void run() {
//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) {