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

Bikas Saha commented on YARN-744:
---------------------------------

Why do we need a wrapper?
We should not be locking on the app attempt id. We should try to find some 
internal RM object thats unique for the app attempt and lock on that. Also 
avoid locking the RMAttempImpl object itself since it will block internal async 
dispatcher.
                
> Race condition in ApplicationMasterService.allocate .. It might process same 
> allocate request twice resulting in additional containers getting allocated.
> ---------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: YARN-744
>                 URL: https://issues.apache.org/jira/browse/YARN-744
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: resourcemanager
>            Reporter: Bikas Saha
>            Assignee: Omkar Vinit Joshi
>         Attachments: MAPREDUCE-3899-branch-0.23.patch, 
> YARN-744-20130711.1.patch, YARN-744-20130715.1.patch, YARN-744.patch
>
>
> Looks like the lock taken in this is broken. It takes a lock on lastResponse 
> object and then puts a new lastResponse object into the map. At this point a 
> new thread entering this function will get a new lastResponse object and will 
> be able to take its lock and enter the critical section. Presumably we want 
> to limit one response per app attempt. So the lock could be taken on the 
> ApplicationAttemptId key of the response map object.

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