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

Vinod Kumar Vavilapalli commented on MAPREDUCE-2967:
----------------------------------------------------

I do expect this to be a gigantic but mostly a dumb patch.

> PB implementations of all records should have getters, setters and getProto() 
> properly synchronized
> ---------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-2967
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-2967
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: mrv2
>    Affects Versions: 0.23.0
>            Reporter: Vinod Kumar Vavilapalli
>            Assignee: Vinod Kumar Vavilapalli
>             Fix For: 0.23.0
>
>
> In the past, I've been bitten by multiple, very hard-to-debug race conditions 
> with YARN+MR which all boiled down to locking bugs in PB implementation of 
> various records.
> The main reason seems to be that while the _getProto()_ method in each record 
> rebuilds the protocol object, if someone accesses a filed using a getter, it 
> returns zero or a null object. Because of this, while _getProto()_ is in 
> progress, _hashCode()_, _equals()_, _toString()_ etc are all affected, 
> leading to hard-to-debug races. I corned this down after much logging in 
> almost all the cases.
> Over time, we've fixed this for most of the ID records.
> This JIRA should fix it for *all* the records once and for all.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to