[
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