[
https://issues.apache.org/jira/browse/YARN-897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Djellel Eddine Difallah updated YARN-897:
-----------------------------------------
Attachment: YARN-897-4.patch
[~acmurthy] Unfortunately, as I pointed above with Omkar, we have to iterate
because at that point in time the chilQueues are already out of order and we
can't use TreeSet methods. For the same reason assignContainersToChildQueues
iterate then add/remove too.
This patch moves the code of reinsertQueue inline with completedContainer.
> CapacityScheduler wrongly sorted queues
> ---------------------------------------
>
> Key: YARN-897
> URL: https://issues.apache.org/jira/browse/YARN-897
> Project: Hadoop YARN
> Issue Type: Bug
> Components: capacityscheduler
> Affects Versions: 2.0.4-alpha
> Reporter: Djellel Eddine Difallah
> Priority: Blocker
> Attachments: TestBugParentQueue.java, YARN-897-1.patch,
> YARN-897-2.patch, YARN-897-3.patch, YARN-897-4.patch
>
>
> The childQueues of a ParentQueue are stored in a TreeSet where UsedCapacity
> defines the sort order. This ensures the queue with least UsedCapacity to
> receive resources next. On containerAssignment we correctly update the order,
> but we miss to do so on container completions. This corrupts the TreeSet
> structure, and under-capacity queues might starve for resources.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira