MAPREDUCE-4295. RM crashes due to DNS issue (tgraves)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1352638 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Thomas Graves 2012-06-21 18:14:22 +00:00
parent b91910dd3e
commit 126dd6adef
2 changed files with 17 additions and 3 deletions

View File

@ -603,6 +603,8 @@ Release 0.23.3 - UNRELEASED
MAPREDUCE-4320. gridmix mainClass wrong in pom.xml (tgraves)
MAPREDUCE-4295. RM crashes due to DNS issue (tgraves)
Release 0.23.2 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -1180,9 +1180,16 @@ public Container createContainer(SchedulerApp application, SchedulerNode node,
if (UserGroupInformation.isSecurityEnabled()) {
ContainerTokenIdentifier tokenIdentifier = new ContainerTokenIdentifier(
containerId, nodeId.toString(), capability);
containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer
.wrap(containerTokenSecretManager
.createPassword(tokenIdentifier)), tokenIdentifier);
try {
containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer
.wrap(containerTokenSecretManager
.createPassword(tokenIdentifier)), tokenIdentifier);
} catch (IllegalArgumentException e) {
// this could be because DNS is down - in which case we just want
// to retry and not bring RM down
LOG.error("Error trying to create new container", e);
return null;
}
}
// Create the container
@ -1212,6 +1219,11 @@ private Resource assignContainer(Resource clusterResource, SchedulerNode node,
Container container =
getContainer(rmContainer, application, node, capability, priority);
// something went wrong getting/creating the container
if (container == null) {
return Resources.none();
}
// Can we allocate a container on this node?
int availableContainers =
available.getMemory() / capability.getMemory();