[ 
https://issues.apache.org/jira/browse/YARN-4416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049493#comment-15049493
 ] 

Wangda Tan commented on YARN-4416:
----------------------------------

Thanks for sharing your thoughts, [~Naganarasimha]/[~sunilg].

Looked at code, I think we need to be very careful with the locking changes of 
OrderingPolicy. Since it will likely cause CME in the future.

I would prefer to split the JIRA into two parts:
- Remove redundant locks, such as getAbsoluteCapacity.
- Improve locks of OrderingPolicy. Even if it closely related to LeafQueue, but 
I think we should try best to decouple it from LeafQueue to better API design. 
Potentially we need to rethink API of OrderingPolicy.

I suggest to convert both JIRAs to sub jiras of YARN-3091.

> Deadlock due to synchronised get Methods in AbstractCSQueue
> -----------------------------------------------------------
>
>                 Key: YARN-4416
>                 URL: https://issues.apache.org/jira/browse/YARN-4416
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: capacity scheduler, resourcemanager
>    Affects Versions: 2.7.1
>            Reporter: Naganarasimha G R
>            Assignee: Naganarasimha G R
>            Priority: Minor
>         Attachments: YARN-4416.v1.001.patch, YARN-4416.v1.002.patch, 
> deadlock.log
>
>
> While debugging in eclipse came across a scenario where in i had to get to 
> know the name of the queue but every time i tried to see the queue it was 
> getting hung. On seeing the stack realized there was a deadlock but on 
> analysis found out that it was only due to *queue.toString()* during 
> debugging as {{AbstractCSQueue.getAbsoluteUsedCapacity}} was synchronized.
> Still i feel {{AbstractCSQueue}}'s getter methods need not be synchronized 
> and better be handled through read and write locks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to