YARN-10033. TestProportionalCapacityPreemptionPolicy not initializing vcores for effective max resources. Contributed by Eric Payne.
This commit is contained in:
parent
24080666e5
commit
f47dcf2d4c
@ -940,8 +940,8 @@ public void testPreemptionWithVCoreResource() {
|
|||||||
true);
|
true);
|
||||||
policy.editSchedule();
|
policy.editSchedule();
|
||||||
|
|
||||||
// 5 containers will be preempted here
|
// 4 containers will be preempted here
|
||||||
verify(mDisp, times(5)).handle(argThat(new IsPreemptionRequestFor(appA)));
|
verify(mDisp, times(4)).handle(argThat(new IsPreemptionRequestFor(appA)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -1094,7 +1094,8 @@ ProportionalCapacityPreemptionPolicy buildPolicy(int[][] qData) {
|
|||||||
ProportionalCapacityPreemptionPolicy policy = new ProportionalCapacityPreemptionPolicy(
|
ProportionalCapacityPreemptionPolicy policy = new ProportionalCapacityPreemptionPolicy(
|
||||||
rmContext, mCS, mClock);
|
rmContext, mCS, mClock);
|
||||||
clusterResources = Resource.newInstance(
|
clusterResources = Resource.newInstance(
|
||||||
leafAbsCapacities(qData[0], qData[7]), 0);
|
leafAbsCapacities(qData[0], qData[7]),
|
||||||
|
leafAbsCapacities(qData[0], qData[7]));
|
||||||
ParentQueue mRoot = buildMockRootQueue(rand, qData);
|
ParentQueue mRoot = buildMockRootQueue(rand, qData);
|
||||||
when(mCS.getRootQueue()).thenReturn(mRoot);
|
when(mCS.getRootQueue()).thenReturn(mRoot);
|
||||||
|
|
||||||
@ -1173,7 +1174,7 @@ Resource[] parseResourceDetails(String[] resData) {
|
|||||||
Resource[] generateResourceList(int[] qData) {
|
Resource[] generateResourceList(int[] qData) {
|
||||||
List<Resource> resourceList = new ArrayList<Resource>();
|
List<Resource> resourceList = new ArrayList<Resource>();
|
||||||
for (int i = 0; i < qData.length; i++) {
|
for (int i = 0; i < qData.length; i++) {
|
||||||
resourceList.add(Resource.newInstance(qData[i], 0));
|
resourceList.add(Resource.newInstance(qData[i], qData[i]));
|
||||||
}
|
}
|
||||||
return resourceList.toArray(new Resource[resourceList.size()]);
|
return resourceList.toArray(new Resource[resourceList.size()]);
|
||||||
}
|
}
|
||||||
@ -1205,16 +1206,16 @@ ParentQueue mockNested(Resource[] abs, int[] maxCap, Resource[] used,
|
|||||||
boolean preemptionDisabled = mockPreemptionStatus("root");
|
boolean preemptionDisabled = mockPreemptionStatus("root");
|
||||||
when(root.getPreemptionDisabled()).thenReturn(preemptionDisabled);
|
when(root.getPreemptionDisabled()).thenReturn(preemptionDisabled);
|
||||||
QueueResourceQuotas rootQr = new QueueResourceQuotas();
|
QueueResourceQuotas rootQr = new QueueResourceQuotas();
|
||||||
rootQr.setEffectiveMaxResource(Resource.newInstance(maxCap[0], 0));
|
rootQr.setEffectiveMaxResource(Resource.newInstance(maxCap[0], maxCap[0]));
|
||||||
rootQr.setEffectiveMinResource(abs[0]);
|
rootQr.setEffectiveMinResource(abs[0]);
|
||||||
rootQr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
|
rootQr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
|
||||||
Resource.newInstance(maxCap[0], 0));
|
Resource.newInstance(maxCap[0], maxCap[0]));
|
||||||
rootQr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[0]);
|
rootQr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[0]);
|
||||||
when(root.getQueueResourceQuotas()).thenReturn(rootQr);
|
when(root.getQueueResourceQuotas()).thenReturn(rootQr);
|
||||||
when(root.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
|
when(root.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
|
||||||
.thenReturn(abs[0]);
|
.thenReturn(abs[0]);
|
||||||
when(root.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
|
when(root.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
|
||||||
.thenReturn(Resource.newInstance(maxCap[0], 0));
|
.thenReturn(Resource.newInstance(maxCap[0], maxCap[0]));
|
||||||
|
|
||||||
for (int i = 1; i < queues.length; ++i) {
|
for (int i = 1; i < queues.length; ++i) {
|
||||||
final CSQueue q;
|
final CSQueue q;
|
||||||
@ -1246,16 +1247,16 @@ ParentQueue mockNested(Resource[] abs, int[] maxCap, Resource[] used,
|
|||||||
when(q.getQueueCapacities()).thenReturn(qc);
|
when(q.getQueueCapacities()).thenReturn(qc);
|
||||||
|
|
||||||
QueueResourceQuotas qr = new QueueResourceQuotas();
|
QueueResourceQuotas qr = new QueueResourceQuotas();
|
||||||
qr.setEffectiveMaxResource(Resource.newInstance(maxCap[i], 0));
|
qr.setEffectiveMaxResource(Resource.newInstance(maxCap[i], maxCap[i]));
|
||||||
qr.setEffectiveMinResource(abs[i]);
|
qr.setEffectiveMinResource(abs[i]);
|
||||||
qr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
|
qr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
|
||||||
Resource.newInstance(maxCap[i], 0));
|
Resource.newInstance(maxCap[i], maxCap[i]));
|
||||||
qr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[i]);
|
qr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[i]);
|
||||||
when(q.getQueueResourceQuotas()).thenReturn(qr);
|
when(q.getQueueResourceQuotas()).thenReturn(qr);
|
||||||
when(q.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
|
when(q.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
|
||||||
.thenReturn(abs[i]);
|
.thenReturn(abs[i]);
|
||||||
when(q.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
|
when(q.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
|
||||||
.thenReturn(Resource.newInstance(maxCap[i], 0));
|
.thenReturn(Resource.newInstance(maxCap[i], maxCap[i]));
|
||||||
|
|
||||||
String parentPathName = p.getQueuePath();
|
String parentPathName = p.getQueuePath();
|
||||||
parentPathName = (parentPathName == null) ? "root" : parentPathName;
|
parentPathName = (parentPathName == null) ? "root" : parentPathName;
|
||||||
|
Loading…
Reference in New Issue
Block a user