[ https://issues.apache.org/jira/browse/YARN-4416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15056470#comment-15056470 ]
Naganarasimha G R commented on YARN-4416: ----------------------------------------- Hi [~wangda], YARN-4416.v2.002.patch removed synchronized lock on getNumApplications. but i presume there will be possibility that in between {{getNumPendingApplications}} and {{getNumActiveApplications}} that {{activateApplications}} can be called and number of applications count can be given as a wrong value(*more than actual*). Shall i revert for this ? > 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: Sub-task > 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, > YARN-4416.v2.001.patch, YARN-4416.v2.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. > Hence we need to ensure following : > # queueCapacity, resource-usage has their own read/write lock hence > synchronization is not req > # numContainers is volatile hence synchronization is not req. > # read/write lock could be added to Ordering Policy. Read operations don't > need synchronized. So {{getNumApplications}} doesn't need synchronized. > (First 2 will be handled in this jira and the third will be handled in > YARN-4443) -- This message was sent by Atlassian JIRA (v6.3.4#6332)