hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vinod Kumar Vavilapalli (JIRA)" <j...@apache.org>
Subject [jira] [Created] (MAPREDUCE-2967) PB implementations of all records should have getters, setters and getProto() properly synchronized
Date Fri, 09 Sep 2011 10:01:09 GMT
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

        

Mime
View raw message