You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2020/04/09 13:23:04 UTC

[hadoop] branch branch-3.3 updated: YARN-10226. NPE in Capacity Scheduler while using %primary_group queue mapping. Contributed by Peter Bacsko.

This is an automated email from the ASF dual-hosted git repository.

sunilg pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.3 by this push:
     new 94df6b5  YARN-10226. NPE in Capacity Scheduler while using %primary_group queue mapping. Contributed by Peter Bacsko.
94df6b5 is described below

commit 94df6b513bbf5826c830c1ff588d26461d10cb7c
Author: Sunil G <su...@apache.org>
AuthorDate: Thu Apr 9 18:51:42 2020 +0530

    YARN-10226. NPE in Capacity Scheduler while using %primary_group queue mapping. Contributed by Peter Bacsko.
    
    (cherry picked from commit 6fb29d0f1710cbef021e58846eb5c67a8d0b1f87)
---
 .../placement/UserGroupMappingPlacementRule.java       | 18 ++++++++++--------
 .../placement/TestUserGroupMappingPlacementRule.java   |  1 +
 2 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/placement/UserGroupMappingPlacementRule.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/placement/UserGroupMappingPlacementRule.java
index 4f97582..391fb34 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/placement/UserGroupMappingPlacementRule.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/placement/UserGroupMappingPlacementRule.java
@@ -161,17 +161,19 @@ public class UserGroupMappingPlacementRule extends PlacementRule {
     String group =
         CapacitySchedulerConfiguration.ROOT + "." + getPrimaryGroup(user);
 
-    CSQueue parent = queueManager.getQueue(mapping.getParentQueue());
+    String parent = mapping.getParentQueue();
+    CSQueue groupQueue = queueManager.getQueue(group);
 
-    if (parent instanceof ManagedParentQueue) {
-      return getPlacementContext(mapping, group);
-    } else {
-      CSQueue queue = this.queueManager.getQueue(group);
-      if ( queue != null) {
-        return getPlacementContext(mapping, queue.getQueuePath());
+    if (parent != null) {
+      CSQueue parentQueue = queueManager.getQueue(parent);
+
+      if (parentQueue instanceof ManagedParentQueue) {
+        return getPlacementContext(mapping, group);
       } else {
-        return null;
+        return groupQueue == null ? null : getPlacementContext(mapping, group);
       }
+    } else {
+      return groupQueue == null ? null : getPlacementContext(mapping, group);
     }
   }
 
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
index 95a0a80..1d7b6b7 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/placement/TestUserGroupMappingPlacementRule.java
@@ -93,6 +93,7 @@ public class TestUserGroupMappingPlacementRule {
     when(queueManager.getQueue("bsubgroup2")).thenReturn(bsubgroup2);
     when(queueManager.getQueue("asubgroup2")).thenReturn(asubgroup2);
     when(queueManager.getQueue("managedParent")).thenReturn(managedParent);
+    when(queueManager.getQueue(null)).thenThrow(new NullPointerException());
 
     when(queueManager.getQueue("root.agroup")).thenReturn(agroup);
     when(queueManager.getQueue("root.bsubgroup2")).thenReturn(bsubgroup2);


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org