YARN-10033. TestProportionalCapacityPreemptionPolicy not initializing vcores for effective max resources. Contributed by Eric Payne.

This commit is contained in:
Eric Badger 2019-12-17 17:10:53 +00:00
parent 24080666e5
commit f47dcf2d4c

View File

@ -940,8 +940,8 @@ public void testPreemptionWithVCoreResource() {
true);
policy.editSchedule();
// 5 containers will be preempted here
verify(mDisp, times(5)).handle(argThat(new IsPreemptionRequestFor(appA)));
// 4 containers will be preempted here
verify(mDisp, times(4)).handle(argThat(new IsPreemptionRequestFor(appA)));
}
@Test
@ -1094,7 +1094,8 @@ ProportionalCapacityPreemptionPolicy buildPolicy(int[][] qData) {
ProportionalCapacityPreemptionPolicy policy = new ProportionalCapacityPreemptionPolicy(
rmContext, mCS, mClock);
clusterResources = Resource.newInstance(
leafAbsCapacities(qData[0], qData[7]), 0);
leafAbsCapacities(qData[0], qData[7]),
leafAbsCapacities(qData[0], qData[7]));
ParentQueue mRoot = buildMockRootQueue(rand, qData);
when(mCS.getRootQueue()).thenReturn(mRoot);
@ -1173,7 +1174,7 @@ Resource[] parseResourceDetails(String[] resData) {
Resource[] generateResourceList(int[] qData) {
List<Resource> resourceList = new ArrayList<Resource>();
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()]);
}
@ -1205,16 +1206,16 @@ ParentQueue mockNested(Resource[] abs, int[] maxCap, Resource[] used,
boolean preemptionDisabled = mockPreemptionStatus("root");
when(root.getPreemptionDisabled()).thenReturn(preemptionDisabled);
QueueResourceQuotas rootQr = new QueueResourceQuotas();
rootQr.setEffectiveMaxResource(Resource.newInstance(maxCap[0], 0));
rootQr.setEffectiveMaxResource(Resource.newInstance(maxCap[0], maxCap[0]));
rootQr.setEffectiveMinResource(abs[0]);
rootQr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
Resource.newInstance(maxCap[0], 0));
Resource.newInstance(maxCap[0], maxCap[0]));
rootQr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[0]);
when(root.getQueueResourceQuotas()).thenReturn(rootQr);
when(root.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
.thenReturn(abs[0]);
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) {
final CSQueue q;
@ -1246,16 +1247,16 @@ ParentQueue mockNested(Resource[] abs, int[] maxCap, Resource[] used,
when(q.getQueueCapacities()).thenReturn(qc);
QueueResourceQuotas qr = new QueueResourceQuotas();
qr.setEffectiveMaxResource(Resource.newInstance(maxCap[i], 0));
qr.setEffectiveMaxResource(Resource.newInstance(maxCap[i], maxCap[i]));
qr.setEffectiveMinResource(abs[i]);
qr.setEffectiveMaxResource(RMNodeLabelsManager.NO_LABEL,
Resource.newInstance(maxCap[i], 0));
Resource.newInstance(maxCap[i], maxCap[i]));
qr.setEffectiveMinResource(RMNodeLabelsManager.NO_LABEL, abs[i]);
when(q.getQueueResourceQuotas()).thenReturn(qr);
when(q.getEffectiveCapacity(RMNodeLabelsManager.NO_LABEL))
.thenReturn(abs[i]);
when(q.getEffectiveMaxCapacity(RMNodeLabelsManager.NO_LABEL))
.thenReturn(Resource.newInstance(maxCap[i], 0));
.thenReturn(Resource.newInstance(maxCap[i], maxCap[i]));
String parentPathName = p.getQueuePath();
parentPathName = (parentPathName == null) ? "root" : parentPathName;