diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceTrackerService.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceTrackerService.java index aa37254..d17711c 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceTrackerService.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceTrackerService.java @@ -100,22 +100,11 @@ private InetSocketAddress resourceTrackerAddress; private String minimumNodeManagerVersion; - private static final NodeHeartbeatResponse resync = recordFactory - .newRecordInstance(NodeHeartbeatResponse.class); - private static final NodeHeartbeatResponse shutDown = recordFactory - .newRecordInstance(NodeHeartbeatResponse.class); - private int minAllocMb; private int minAllocVcores; private boolean isDistributedNodeLabelsConf; - static { - resync.setNodeAction(NodeAction.RESYNC); - - shutDown.setNodeAction(NodeAction.SHUTDOWN); - } - public ResourceTrackerService(RMContext rmContext, NodesListManager nodesListManager, NMLivelinessMonitor nmLivelinessMonitor, @@ -414,8 +403,11 @@ public NodeHeartbeatResponse nodeHeartbeat(NodeHeartbeatRequest request) "Disallowed NodeManager nodeId: " + nodeId + " hostname: " + nodeId.getHost(); LOG.info(message); - shutDown.setDiagnosticsMessage(message); - return shutDown; + NodeHeartbeatResponse shutdownResponse = recordFactory + .newRecordInstance(NodeHeartbeatResponse.class); + shutdownResponse.setNodeAction(NodeAction.SHUTDOWN); + shutdownResponse.setDiagnosticsMessage(message); + return shutdownResponse; } // 2. Check if it's a registered node @@ -424,8 +416,11 @@ public NodeHeartbeatResponse nodeHeartbeat(NodeHeartbeatRequest request) /* node does not exist */ String message = "Node not found resyncing " + remoteNodeStatus.getNodeId(); LOG.info(message); - resync.setDiagnosticsMessage(message); - return resync; + NodeHeartbeatResponse resyncResponse = recordFactory + .newRecordInstance(NodeHeartbeatResponse.class); + resyncResponse.setNodeAction(NodeAction.RESYNC); + resyncResponse.setDiagnosticsMessage(message); + return resyncResponse; } // Send ping @@ -445,11 +440,14 @@ public NodeHeartbeatResponse nodeHeartbeat(NodeHeartbeatRequest request) + lastNodeHeartbeatResponse.getResponseId() + " nm response id:" + remoteNodeStatus.getResponseId(); LOG.info(message); - resync.setDiagnosticsMessage(message); + NodeHeartbeatResponse resyncResponse = recordFactory + .newRecordInstance(NodeHeartbeatResponse.class); + resyncResponse.setNodeAction(NodeAction.RESYNC); + resyncResponse.setDiagnosticsMessage(message); // TODO: Just sending reboot is not enough. Think more. this.rmContext.getDispatcher().getEventHandler().handle( new RMNodeEvent(nodeId, RMNodeEventType.REBOOTING)); - return resync; + return resyncResponse; } // Heartbeat response