From 312c67ed7ebd542439b638127ffda1738cef91ac Mon Sep 17 00:00:00 2001 From: Gergely Pollak Date: Wed, 9 Dec 2020 17:42:17 +0100 Subject: [PATCH] YARN-10526 RMAppManager CS Placement ignores parent path Change-Id: I17149b068bfde2806062ccb639852354a9e5bcb8 --- .../server/resourcemanager/RMAppManager.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java index 13c2ec7de4c..25ff384c742 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMAppManager.java @@ -500,11 +500,25 @@ private RMAppImpl createAndPopulateNewRMApp( } } + //In the case of capacity scheduler the queue name only means the name of + // the leaf queue, but since YARN-9879, internal queue references should + // use full path, so we get the queue and parent name from the placement + // context instead of the submissionContext. + String placementQueueName = submissionContext.getQueue(); + if (placementContext != null && scheduler instanceof CapacityScheduler) { + if (placementContext.hasParentQueue()) { + placementQueueName = placementContext.getParentQueue() + "." + + placementContext.getQueue(); + } else { + placementQueueName = placementContext.getQueue(); + } + } + // Create RMApp RMAppImpl application = new RMAppImpl(applicationId, rmContext, this.conf, submissionContext.getApplicationName(), user, - submissionContext.getQueue(), + placementQueueName, submissionContext, this.scheduler, this.masterService, submitTime, submissionContext.getApplicationType(), submissionContext.getApplicationTags(), amReqs, placementContext, -- 2.26.2