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/capacity/ParentQueue.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java index 80549ca5c16..6f32a1d2e9d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/ParentQueue.java @@ -768,7 +768,12 @@ private ResourceLimits getResourceLimitsOfChild(CSQueue child, private Iterator sortAndGetChildrenAllocationIterator( String partition) { - return queueOrderingPolicy.getAssignmentIterator(partition); + try { + readLock.lock(); + return queueOrderingPolicy.getAssignmentIterator(partition); + } finally { + readLock.unlock(); + } } private CSAssignment assignContainersToChildQueues(Resource cluster,