Skip to content

Commit 08eaa3d

Browse files
committed
YARN-618. Modified RM_INVALID_IDENTIFIER to be -1 instead of zero. Contributed by Jian He.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1478230 13f79535-47bb-0310-9956-ffa450edef68
1 parent 10dc3dd commit 08eaa3d

File tree

8 files changed

+36
-20
lines changed

8 files changed

+36
-20
lines changed

hadoop-yarn-project/CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,9 @@ Release 2.0.5-beta - UNRELEASED
201201
to separate out various validation checks depending on whether they rely on
202202
RM configuration or not. (Zhijie Shen via vinodkv)
203203

204+
YARN-618. Modified RM_INVALID_IDENTIFIER to be -1 instead of zero. (Jian He
205+
via vinodkv)
206+
204207
OPTIMIZATIONS
205208

206209
BUG FIXES

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/src/main/java/org/apache/hadoop/yarn/server/api/ResourceManagerConstants.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,10 @@
2020

2121
public interface ResourceManagerConstants {
2222

23-
public static final long RM_INVALID_IDENTIFIER = 0;
23+
/**
24+
* This states the invalid identifier of Resource Manager. This is used as a
25+
* default value for initializing RM identifier. Currently, RM is using time
26+
* stamp as RM identifier.
27+
*/
28+
public static final long RM_INVALID_IDENTIFIER = -1;
2429
}

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestEventFlow.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class TestEventFlow {
5858
TestEventFlow.class.getName() + "-localLogDir").getAbsoluteFile();
5959
private static File remoteLogDir = new File("target",
6060
TestEventFlow.class.getName() + "-remoteLogDir").getAbsoluteFile();
61+
private static final long SIMULATED_RM_IDENTIFIER = 1234;
6162

6263
@Test
6364
public void testSuccessfulContainerLaunch() throws InterruptedException,
@@ -100,6 +101,11 @@ protected ResourceTracker getRMClient() {
100101
protected void startStatusUpdater() {
101102
return; // Don't start any updating thread.
102103
}
104+
105+
@Override
106+
public long getRMIdentifier() {
107+
return SIMULATED_RM_IDENTIFIER;
108+
}
103109
};
104110

105111
DummyContainerManager containerManager =
@@ -124,6 +130,8 @@ protected void startStatusUpdater() {
124130
when(mockContainer.getId()).thenReturn(cID);
125131
when(mockContainer.getResource()).thenReturn(recordFactory
126132
.newRecordInstance(Resource.class));
133+
when(mockContainer.getRMIdentifer()).thenReturn(SIMULATED_RM_IDENTIFIER);
134+
127135
launchContext.setUser("testing");
128136
StartContainerRequest request =
129137
recordFactory.newRecordInstance(StartContainerRequest.class);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/BaseContainerManagerTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ public BaseContainerManagerTest() throws UnsupportedFileSystemException {
9898
protected String user = "nobody";
9999
protected NodeHealthCheckerService nodeHealthChecker;
100100
protected LocalDirsHandlerService dirsHandler;
101+
protected final long DUMMY_RM_IDENTIFIER = 1234;
101102

102103
protected NodeStatusUpdater nodeStatusUpdater = new NodeStatusUpdaterImpl(
103104
context, new AsyncDispatcher(), null, metrics) {
@@ -110,6 +111,12 @@ protected ResourceTracker getRMClient() {
110111
protected void startStatusUpdater() {
111112
return; // Don't start any updating thread.
112113
}
114+
115+
@Override
116+
public long getRMIdentifier() {
117+
// There is no real RM registration, simulate and set RMIdentifier
118+
return DUMMY_RM_IDENTIFIER;
119+
}
113120
};
114121

115122
protected ContainerManagerImpl containerManager = null;

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManager.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.io.FileReader;
2727
import java.io.IOException;
2828
import java.io.PrintWriter;
29-
import java.util.ArrayList;
3029
import java.util.Arrays;
3130
import java.util.HashMap;
3231
import java.util.List;
@@ -58,12 +57,8 @@
5857
import org.apache.hadoop.yarn.server.api.ResourceManagerConstants;
5958
import org.apache.hadoop.yarn.server.nodemanager.CMgrCompletedAppsEvent;
6059
import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor.ExitCode;
61-
import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor.Signal;
6260
import org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor;
6361
import org.apache.hadoop.yarn.server.nodemanager.DeletionService;
64-
import org.apache.hadoop.yarn.server.nodemanager.LocalRMInterface;
65-
import org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdater;
66-
import org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl;
6762
import org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationState;
6863
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer;
6964
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService;
@@ -161,6 +156,7 @@ public void testContainerSetup() throws IOException, InterruptedException {
161156
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
162157
when(mockContainer.getNodeHttpAddress()).thenReturn(
163158
context.getNodeId().getHost() + ":12345");
159+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
164160

165161
StartContainerRequest startRequest =
166162
recordFactory.newRecordInstance(StartContainerRequest.class);
@@ -259,6 +255,7 @@ public void testContainerLaunchAndStop() throws IOException,
259255
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
260256
when(mockContainer.getNodeHttpAddress()).thenReturn(
261257
context.getNodeId().getHost() + ":12345");
258+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
262259

263260
StartContainerRequest startRequest = recordFactory.newRecordInstance(StartContainerRequest.class);
264261
startRequest.setContainerLaunchContext(containerLaunchContext);
@@ -370,6 +367,8 @@ private void testContainerLaunchAndExit(int exitCode) throws IOException, Interr
370367
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
371368
when(mockContainer.getNodeHttpAddress()).thenReturn(
372369
context.getNodeId().getHost() + ":12345");
370+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
371+
373372
StartContainerRequest startRequest = recordFactory.newRecordInstance(StartContainerRequest.class);
374373
startRequest.setContainerLaunchContext(containerLaunchContext);
375374
startRequest.setContainer(mockContainer);
@@ -470,6 +469,7 @@ public void setBlockNewContainerRequests(
470469
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
471470
when(mockContainer.getNodeHttpAddress()).thenReturn(
472471
context.getNodeId().getHost() + ":12345");
472+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
473473

474474
// containerLaunchContext.command = new ArrayList<CharSequence>();
475475

@@ -541,19 +541,6 @@ public void setBlockNewContainerRequests(
541541
@Test
542542
public void testContainerLaunchFromPreviousRM() throws IOException,
543543
InterruptedException {
544-
// There is no real RM registration, simulate and set RMIdentifier
545-
NodeStatusUpdater nodeStatusUpdater = mock(NodeStatusUpdater.class);
546-
when(nodeStatusUpdater.getRMIdentifier()).thenReturn((long) 1234);
547-
containerManager =
548-
new ContainerManagerImpl(context, exec, delSrvc, nodeStatusUpdater,
549-
metrics, new ApplicationACLsManager(conf), dirsHandler) {
550-
@Override
551-
public void setBlockNewContainerRequests(
552-
boolean blockNewContainerRequests) {
553-
// do nothing
554-
}
555-
};
556-
containerManager.init(conf);
557544
containerManager.start();
558545

559546
ContainerLaunchContext containerLaunchContext =
@@ -595,7 +582,8 @@ public void setBlockNewContainerRequests(
595582
// Construct the Container with a RMIdentifier within current RM
596583
Container mockContainer2 = mock(Container.class);
597584
when(mockContainer2.getId()).thenReturn(cId2);
598-
when(mockContainer2.getRMIdentifer()).thenReturn((long) 1234);
585+
when(mockContainer2.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
586+
599587
when(mockContainer2.getResource()).thenReturn(mockResource);
600588
StartContainerRequest startRequest2 =
601589
recordFactory.newRecordInstance(StartContainerRequest.class);

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,7 @@ public void testContainerEnvVariables() throws Exception {
180180
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
181181
when(mockContainer.getNodeHttpAddress()).thenReturn(
182182
context.getNodeId().getHost() + ":12345");
183+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
183184

184185
Map<String, String> userSetEnv = new HashMap<String, String>();
185186
userSetEnv.put(Environment.CONTAINER_ID.name(), "user_set_container_id");
@@ -376,6 +377,7 @@ public void testDelayedKill() throws Exception {
376377
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
377378
when(mockContainer.getNodeHttpAddress()).thenReturn(
378379
context.getNodeId().getHost() + ":12345");
380+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
379381

380382
containerLaunchContext.setUser(user);
381383

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/TestLogAggregationService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,7 @@ public void testLogAggregationForRealContainerLaunch() throws IOException,
691691
ContainerId cId = BuilderUtils.newContainerId(appAttemptId, 0);
692692

693693
when(mockContainer.getId()).thenReturn(cId);
694+
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
694695

695696
containerLaunchContext.setUser(this.user);
696697

hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainersMonitor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,8 @@ public void testContainerKillOnMemoryOverflow() throws IOException,
216216
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
217217
when(mockContainer.getNodeHttpAddress()).thenReturn(
218218
context.getNodeId().getHost() + ":12345");
219+
when(mockContainer.getRMIdentifer()).thenReturn(
220+
super.DUMMY_RM_IDENTIFIER);
219221
containerLaunchContext.setUser(user);
220222

221223
URL resource_alpha =

0 commit comments

Comments
 (0)