Karthik Kambatla commented on YARN-3762:

Thanks for the review, Arun. Good points.

bq. what happens if the collection is modified in between..
The two possible modifications are adding/removing a child queue. Adding a 
child queue to the end of the list doesn't affect container assignment. 
Removing a child queue affects container assignment, but that is a good thing. 
We should probably add a comment to that effect so we don't forget this in the 

bq. instead of using a List and sorting it everytime, we could use a Sorted Bag 
(MultiSet) ? 
One issue with using a sorted list is the sorting happens on addition/removal. 
FSQueues already in the list also change affecting the "order". May be, we 
could remove and re-insert the queue if anything changes, but that is a much 
bigger change and needs to be carefully evaluated for performance.

> FairScheduler: CME on FSParentQueue#getQueueUserAclInfo
> -------------------------------------------------------
>                 Key: YARN-3762
>                 URL: https://issues.apache.org/jira/browse/YARN-3762
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: fairscheduler
>    Affects Versions: 2.7.0
>            Reporter: Karthik Kambatla
>            Assignee: Karthik Kambatla
>            Priority: Critical
>         Attachments: yarn-3762-1.patch, yarn-3762-1.patch
> In our testing, we ran into the following ConcurrentModificationException:
> {noformat}
> halxg.cloudera.com:8042, nodeRackName/rackvb07, nodeNumContainers0
> 15/05/22 13:02:22 INFO distributedshell.Client: Queue info, 
> queueName=root.testyarnpool3, queueCurrentCapacity=0.0, 
> queueMaxCapacity=-1.0, queueApplicationCount=0, queueChildQueueCount=0
> 15/05/22 13:02:22 FATAL distributedshell.Client: Error running Client
> java.util.ConcurrentModificationException: 
> java.util.ConcurrentModificationException
>       at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
>       at java.util.ArrayList$Itr.next(ArrayList.java:851)
>       at 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSParentQueue.getQueueUserAclInfo(FSParentQueue.java:155)
>       at 
> org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.getQueueUserAclInfo(FairScheduler.java:1395)
>       at 
> org.apache.hadoop.yarn.server.resourcemanager.ClientRMService.getQueueUserAcls(ClientRMService.java:880)
> {noformat}

This message was sent by Atlassian JIRA

Reply via email to