From f47dcf2d4cf437dd67d14dd05c60648d9ff87843 Mon Sep 17 00:00:00 2001 From: Eric Badger Date: Tue, 17 Dec 2019 17:10:53 +0000 Subject: [PATCH] YARN-10033. TestProportionalCapacityPreemptionPolicy not initializing vcores for effective max resources. Contributed by Eric Payne. --- ...tProportionalCapacityPreemptionPolicy.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java index d02950dc955..c095573680a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java @@ -940,8 +940,8 @@ public class TestProportionalCapacityPreemptionPolicy { 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 @@ public class TestProportionalCapacityPreemptionPolicy { 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 @@ public class TestProportionalCapacityPreemptionPolicy { Resource[] generateResourceList(int[] qData) { List resourceList = new ArrayList(); 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 @@ public class TestProportionalCapacityPreemptionPolicy { 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 @@ public class TestProportionalCapacityPreemptionPolicy { 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;