YARN-8346. Upgrading to 3.1 kills running containers with error 'Opportunistic container queue is full'. Contributed by Jason Lowe.
This commit is contained in:
parent
7a87add4ea
commit
4cc0c9b0ba
@ -292,7 +292,7 @@ public long getRMIdentifier() {
|
|||||||
*/
|
*/
|
||||||
public ContainerType getContainerType(){
|
public ContainerType getContainerType(){
|
||||||
if (!proto.hasContainerType()) {
|
if (!proto.hasContainerType()) {
|
||||||
return null;
|
return ContainerType.TASK;
|
||||||
}
|
}
|
||||||
return convertFromProtoFormat(proto.getContainerType());
|
return convertFromProtoFormat(proto.getContainerType());
|
||||||
}
|
}
|
||||||
@ -303,7 +303,7 @@ public ContainerType getContainerType(){
|
|||||||
*/
|
*/
|
||||||
public ExecutionType getExecutionType(){
|
public ExecutionType getExecutionType(){
|
||||||
if (!proto.hasExecutionType()) {
|
if (!proto.hasExecutionType()) {
|
||||||
return null;
|
return ExecutionType.GUARANTEED;
|
||||||
}
|
}
|
||||||
return convertFromProtoFormat(proto.getExecutionType());
|
return convertFromProtoFormat(proto.getExecutionType());
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
import org.apache.hadoop.yarn.api.records.impl.pb.LogAggregationContextPBImpl;
|
import org.apache.hadoop.yarn.api.records.impl.pb.LogAggregationContextPBImpl;
|
||||||
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
import org.apache.hadoop.yarn.conf.YarnConfiguration;
|
||||||
import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager;
|
import org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager;
|
||||||
|
import org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.ContainerTokenIdentifierProto;
|
||||||
import org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.YARNDelegationTokenIdentifierProto;
|
import org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.YARNDelegationTokenIdentifierProto;
|
||||||
import org.apache.hadoop.yarn.security.client.ClientToAMTokenIdentifier;
|
import org.apache.hadoop.yarn.security.client.ClientToAMTokenIdentifier;
|
||||||
import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier;
|
import org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier;
|
||||||
@ -169,6 +170,30 @@ public void testClientToAMTokenIdentifier() throws IOException {
|
|||||||
anotherToken.getClientName(), clientName);
|
anotherToken.getClientName(), clientName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testContainerTokenIdentifierProtoMissingFields()
|
||||||
|
throws IOException {
|
||||||
|
ContainerTokenIdentifierProto.Builder builder =
|
||||||
|
ContainerTokenIdentifierProto.newBuilder();
|
||||||
|
ContainerTokenIdentifierProto proto = builder.build();
|
||||||
|
Assert.assertFalse(proto.hasContainerType());
|
||||||
|
Assert.assertFalse(proto.hasExecutionType());
|
||||||
|
Assert.assertFalse(proto.hasNodeLabelExpression());
|
||||||
|
|
||||||
|
byte[] tokenData = proto.toByteArray();
|
||||||
|
DataInputBuffer dib = new DataInputBuffer();
|
||||||
|
dib.reset(tokenData, tokenData.length);
|
||||||
|
ContainerTokenIdentifier tid = new ContainerTokenIdentifier();
|
||||||
|
tid.readFields(dib);
|
||||||
|
|
||||||
|
Assert.assertEquals("container type",
|
||||||
|
ContainerType.TASK, tid.getContainerType());
|
||||||
|
Assert.assertEquals("execution type",
|
||||||
|
ExecutionType.GUARANTEED, tid.getExecutionType());
|
||||||
|
Assert.assertEquals("node label expression",
|
||||||
|
CommonNodeLabelsManager.NO_LABEL, tid.getNodeLabelExpression());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testContainerTokenIdentifier() throws IOException {
|
public void testContainerTokenIdentifier() throws IOException {
|
||||||
testContainerTokenIdentifier(false, false);
|
testContainerTokenIdentifier(false, false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user