[ 
https://issues.apache.org/jira/browse/MAPREDUCE-2967?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Allen Wittenauer updated MAPREDUCE-2967:
----------------------------------------
    Affects Version/s: 3.0.0

> 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, 3.0.0
>            Reporter: Vinod Kumar Vavilapalli
>            Assignee: Vinod Kumar Vavilapalli
>
> 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 was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to