YARN-618. Modified RM_INVALID_IDENTIFIER to be -1 instead of zero. Contributed by Jian He.
svn merge --ignore-ancestry -c 1478230 ../../trunk/ git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1478235 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
07f6348192
commit
fbdc7ed67d
|
@ -126,6 +126,9 @@ Release 2.0.5-beta - UNRELEASED
|
|||
to separate out various validation checks depending on whether they rely on
|
||||
RM configuration or not. (Zhijie Shen via vinodkv)
|
||||
|
||||
YARN-618. Modified RM_INVALID_IDENTIFIER to be -1 instead of zero. (Jian He
|
||||
via vinodkv)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
BUG FIXES
|
||||
|
|
|
@ -20,5 +20,10 @@ package org.apache.hadoop.yarn.server.api;
|
|||
|
||||
public interface ResourceManagerConstants {
|
||||
|
||||
public static final long RM_INVALID_IDENTIFIER = 0;
|
||||
/**
|
||||
* This states the invalid identifier of Resource Manager. This is used as a
|
||||
* default value for initializing RM identifier. Currently, RM is using time
|
||||
* stamp as RM identifier.
|
||||
*/
|
||||
public static final long RM_INVALID_IDENTIFIER = -1;
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ public class TestEventFlow {
|
|||
TestEventFlow.class.getName() + "-localLogDir").getAbsoluteFile();
|
||||
private static File remoteLogDir = new File("target",
|
||||
TestEventFlow.class.getName() + "-remoteLogDir").getAbsoluteFile();
|
||||
private static final long SIMULATED_RM_IDENTIFIER = 1234;
|
||||
|
||||
@Test
|
||||
public void testSuccessfulContainerLaunch() throws InterruptedException,
|
||||
|
@ -100,6 +101,11 @@ public class TestEventFlow {
|
|||
protected void startStatusUpdater() {
|
||||
return; // Don't start any updating thread.
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getRMIdentifier() {
|
||||
return SIMULATED_RM_IDENTIFIER;
|
||||
}
|
||||
};
|
||||
|
||||
DummyContainerManager containerManager =
|
||||
|
@ -124,6 +130,8 @@ public class TestEventFlow {
|
|||
when(mockContainer.getId()).thenReturn(cID);
|
||||
when(mockContainer.getResource()).thenReturn(recordFactory
|
||||
.newRecordInstance(Resource.class));
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(SIMULATED_RM_IDENTIFIER);
|
||||
|
||||
launchContext.setUser("testing");
|
||||
StartContainerRequest request =
|
||||
recordFactory.newRecordInstance(StartContainerRequest.class);
|
||||
|
|
|
@ -98,6 +98,7 @@ public abstract class BaseContainerManagerTest {
|
|||
protected String user = "nobody";
|
||||
protected NodeHealthCheckerService nodeHealthChecker;
|
||||
protected LocalDirsHandlerService dirsHandler;
|
||||
protected final long DUMMY_RM_IDENTIFIER = 1234;
|
||||
|
||||
protected NodeStatusUpdater nodeStatusUpdater = new NodeStatusUpdaterImpl(
|
||||
context, new AsyncDispatcher(), null, metrics) {
|
||||
|
@ -110,6 +111,12 @@ public abstract class BaseContainerManagerTest {
|
|||
protected void startStatusUpdater() {
|
||||
return; // Don't start any updating thread.
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getRMIdentifier() {
|
||||
// There is no real RM registration, simulate and set RMIdentifier
|
||||
return DUMMY_RM_IDENTIFIER;
|
||||
}
|
||||
};
|
||||
|
||||
protected ContainerManagerImpl containerManager = null;
|
||||
|
|
|
@ -59,7 +59,6 @@ import org.apache.hadoop.yarn.server.nodemanager.CMgrCompletedAppsEvent;
|
|||
import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor.ExitCode;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.ContainerExecutor.Signal;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.DeletionService;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdater;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.containermanager.application.ApplicationState;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ContainerLocalizer;
|
||||
import org.apache.hadoop.yarn.server.nodemanager.containermanager.localizer.ResourceLocalizationService;
|
||||
|
@ -157,6 +156,7 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
StartContainerRequest startRequest =
|
||||
recordFactory.newRecordInstance(StartContainerRequest.class);
|
||||
|
@ -250,6 +250,8 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
StartContainerRequest startRequest = recordFactory.newRecordInstance(StartContainerRequest.class);
|
||||
startRequest.setContainerLaunchContext(containerLaunchContext);
|
||||
startRequest.setContainer(mockContainer);
|
||||
|
@ -357,6 +359,8 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
StartContainerRequest startRequest = recordFactory.newRecordInstance(StartContainerRequest.class);
|
||||
startRequest.setContainerLaunchContext(containerLaunchContext);
|
||||
startRequest.setContainer(mockContainer);
|
||||
|
@ -457,6 +461,7 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
// containerLaunchContext.command = new ArrayList<CharSequence>();
|
||||
|
||||
|
@ -528,19 +533,6 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
@Test
|
||||
public void testContainerLaunchFromPreviousRM() throws IOException,
|
||||
InterruptedException {
|
||||
// There is no real RM registration, simulate and set RMIdentifier
|
||||
NodeStatusUpdater nodeStatusUpdater = mock(NodeStatusUpdater.class);
|
||||
when(nodeStatusUpdater.getRMIdentifier()).thenReturn((long) 1234);
|
||||
containerManager =
|
||||
new ContainerManagerImpl(context, exec, delSrvc, nodeStatusUpdater,
|
||||
metrics, new ApplicationACLsManager(conf), dirsHandler) {
|
||||
@Override
|
||||
public void setBlockNewContainerRequests(
|
||||
boolean blockNewContainerRequests) {
|
||||
// do nothing
|
||||
}
|
||||
};
|
||||
containerManager.init(conf);
|
||||
containerManager.start();
|
||||
|
||||
ContainerLaunchContext containerLaunchContext =
|
||||
|
@ -582,7 +574,8 @@ public class TestContainerManager extends BaseContainerManagerTest {
|
|||
// Construct the Container with a RMIdentifier within current RM
|
||||
Container mockContainer2 = mock(Container.class);
|
||||
when(mockContainer2.getId()).thenReturn(cId2);
|
||||
when(mockContainer2.getRMIdentifer()).thenReturn((long) 1234);
|
||||
when(mockContainer2.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
when(mockContainer2.getResource()).thenReturn(mockResource);
|
||||
StartContainerRequest startRequest2 =
|
||||
recordFactory.newRecordInstance(StartContainerRequest.class);
|
||||
|
|
|
@ -170,6 +170,7 @@ public class TestContainerLaunch extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
Map<String, String> userSetEnv = new HashMap<String, String>();
|
||||
userSetEnv.put(Environment.CONTAINER_ID.name(), "user_set_container_id");
|
||||
|
@ -348,6 +349,7 @@ public class TestContainerLaunch extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
containerLaunchContext.setUser(user);
|
||||
|
||||
|
|
|
@ -691,6 +691,7 @@ public class TestLogAggregationService extends BaseContainerManagerTest {
|
|||
ContainerId cId = BuilderUtils.newContainerId(appAttemptId, 0);
|
||||
|
||||
when(mockContainer.getId()).thenReturn(cId);
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(super.DUMMY_RM_IDENTIFIER);
|
||||
|
||||
containerLaunchContext.setUser(this.user);
|
||||
|
||||
|
|
|
@ -216,6 +216,8 @@ public class TestContainersMonitor extends BaseContainerManagerTest {
|
|||
when(mockContainer.getNodeId()).thenReturn(context.getNodeId());
|
||||
when(mockContainer.getNodeHttpAddress()).thenReturn(
|
||||
context.getNodeId().getHost() + ":12345");
|
||||
when(mockContainer.getRMIdentifer()).thenReturn(
|
||||
super.DUMMY_RM_IDENTIFIER);
|
||||
containerLaunchContext.setUser(user);
|
||||
|
||||
URL resource_alpha =
|
||||
|
|
Loading…
Reference in New Issue