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

Alejandro Abdelnur commented on YARN-184:
-----------------------------------------

*FairScheduler.java*

* The UpdateThread should be set as a daemon thread.

*QueueManager.java*

* At the end of the  reloadAllocs() method a synchronized block on THIS 
reassigns all resources info/apps/weights/modes/.. values. But the getter 
methods of those values are not synchronized, ie getUserMaxApp() which could 
lead to an inconsistent result. A solution would be to have a struct that 
defines all the instance Maps, make that volatile, assign it atomically and on 
the getter methods assign it to a local var and then access all its values from 
the local var (if a reassign happens half way you still have a consistent view 
of all values you use)

                
> Remove unnecessary locking in fair scheduler, and address findbugs excludes.
> ----------------------------------------------------------------------------
>
>                 Key: YARN-184
>                 URL: https://issues.apache.org/jira/browse/YARN-184
>             Project: Hadoop YARN
>          Issue Type: Improvement
>    Affects Versions: 2.0.2-alpha
>            Reporter: Sandy Ryza
>            Assignee: Sandy Ryza
>         Attachments: YARN-184-1.patch, YARN-184.patch
>
>
> In YARN-12, locks were added to all fields of QueueManager to address 
> findbugs.  In addition, findbugs exclusions were added in response to 
> MAPREDUCE-4439, without a deep look at the code.

--
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