[ 
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

Reply via email to