YARN-10226. NPE in Capacity Scheduler while using %primary_group queue mapping. Contributed by Peter Bacsko.
(cherry picked from commit 6fb29d0f17
)
This commit is contained in:
parent
ef01e9d40e
commit
94df6b513b
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue