Naganarasimha G R commented on YARN-4416:

Hmm true, but any other way to avoid sync locks for the get API's ?  I feel 
thats really not good its like web ui,CLI, REST everybody access Queue to get 
information and if any problem else where Main Scheduler Thread can get stuck. 
Also we can have unexpected deadlocks for read calls like one in the attached 
stack trace. 
Can Read/Write locks in the leaf queue be an option ?

> 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

Reply via email to