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-4320. gridmix mainClass wrong in pom.xml (tgraves)
MAPREDUCE-4295. RM crashes due to DNS issue (tgraves)
Release 0.23.2 - UNRELEASED Release 0.23.2 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -1180,9 +1180,16 @@ public class LeafQueue implements CSQueue {
if (UserGroupInformation.isSecurityEnabled()) { if (UserGroupInformation.isSecurityEnabled()) {
ContainerTokenIdentifier tokenIdentifier = new ContainerTokenIdentifier( ContainerTokenIdentifier tokenIdentifier = new ContainerTokenIdentifier(
containerId, nodeId.toString(), capability); containerId, nodeId.toString(), capability);
containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer try {
.wrap(containerTokenSecretManager containerToken = BuilderUtils.newContainerToken(nodeId, ByteBuffer
.createPassword(tokenIdentifier)), tokenIdentifier); .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 // Create the container
@ -1211,6 +1218,11 @@ public class LeafQueue implements CSQueue {
// Create the container if necessary // Create the container if necessary
Container container = Container container =
getContainer(rmContainer, application, node, capability, priority); 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? // Can we allocate a container on this node?
int availableContainers = int availableContainers =