[ https://issues.apache.org/jira/browse/YARN-573?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13725544#comment-13725544 ]
Jason Lowe commented on YARN-573: --------------------------------- bq. I thought about it earlier but we are using iterator internally and we are modifying list using that iterator which won't be thread safe. Let me know if we should use Collections.synchronizedList or should synchronize on list? It's OK to iterate over a SynchronizedList as long as one explicitly synchronizes the list while iterating. This is called out in the javadocs for SynchronizedList. Synchronizing on the list will effectively block all other threads attempting to access the list until the iteration completes, because SynchronizedList methods end up using {{this}} as a mutex. bq. Yes you are right we should change the constructor to use ConcurrentMap. I will fix it together with above question/comment. I was not so much thinking the constructor should take a ConcurrentMap so much as thinking that particular constructor should simply be removed. It's not called by anything else other than the simpler constructor form, and we can just have that constructor create the ConcurrentMap directly when it initializes the {{pending}} field. > Shared data structures in Public Localizer and Private Localizer are not > Thread safe. > ------------------------------------------------------------------------------------- > > Key: YARN-573 > URL: https://issues.apache.org/jira/browse/YARN-573 > Project: Hadoop YARN > Issue Type: Sub-task > Reporter: Omkar Vinit Joshi > Assignee: Omkar Vinit Joshi > Priority: Critical > Attachments: YARN-573-20130730.1.patch > > > PublicLocalizer > 1) pending accessed by addResource (part of event handling) and run method > (as a part of PublicLocalizer.run() ). > PrivateLocalizer > 1) pending accessed by addResource (part of event handling) and > findNextResource (i.remove()). Also update method should be fixed. It too is > sharing pending list. -- 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