YARN-8268. Fair scheduler: reservable queue is configured both as parent and leaf queue. (Gergo Repas via Haibo Chen)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1f10a360 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1f10a360 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1f10a360 Branch: refs/heads/HDDS-4 Commit: 1f10a360219c91ac13d31bdb5c8d302b1b45afc3 Parents: 8f7912e Author: Haibo Chen <haiboc...@apache.org> Authored: Fri May 11 11:28:05 2018 -0700 Committer: Haibo Chen <haiboc...@apache.org> Committed: Fri May 11 11:34:00 2018 -0700 ---------------------------------------------------------------------- .../fair/allocation/AllocationFileQueueParser.java | 5 ++++- .../scheduler/fair/TestAllocationFileLoaderService.java | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f10a360/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/allocation/AllocationFileQueueParser.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/allocation/AllocationFileQueueParser.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/allocation/AllocationFileQueueParser.java index ec7e4a4..d5a436e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/allocation/AllocationFileQueueParser.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/allocation/AllocationFileQueueParser.java @@ -217,7 +217,10 @@ public class AllocationFileQueueParser { // if a leaf in the alloc file is marked as type='parent' // then store it as a parent queue if (isLeaf && !"parent".equals(element.getAttribute("type"))) { - builder.configuredQueues(FSQueueType.LEAF, queueName); + // reservable queue has been already configured as parent + if (!isReservable) { + builder.configuredQueues(FSQueueType.LEAF, queueName); + } } else { if (isReservable) { throw new AllocationConfigurationException("The configuration settings" http://git-wip-us.apache.org/repos/asf/hadoop/blob/1f10a360/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestAllocationFileLoaderService.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestAllocationFileLoaderService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestAllocationFileLoaderService.java index 5522333..8591d67 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestAllocationFileLoaderService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestAllocationFileLoaderService.java @@ -42,6 +42,9 @@ import java.net.URISyntaxException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Map; +import java.util.Set; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; @@ -801,6 +804,13 @@ public class TestAllocationFileLoaderService { String nonreservableQueueName = "root.other"; assertFalse(allocConf.isReservable(nonreservableQueueName)); assertTrue(allocConf.isReservable(reservableQueueName)); + Map<FSQueueType, Set<String>> configuredQueues = + allocConf.getConfiguredQueues(); + assertTrue("reservable queue is expected be to a parent queue", + configuredQueues.get(FSQueueType.PARENT).contains(reservableQueueName)); + assertFalse("reservable queue should not be a leaf queue", + configuredQueues.get(FSQueueType.LEAF) + .contains(reservableQueueName)); assertTrue(allocConf.getMoveOnExpiry(reservableQueueName)); assertEquals(ReservationSchedulerConfiguration.DEFAULT_RESERVATION_WINDOW, --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org