hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6608) Fix for HBASE-6160, META entries from daughters can be deleted before parent entries, shouldn't compare HRegionInfo's
Date Thu, 23 Aug 2012 08:55:43 GMT

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

Hudson commented on HBASE-6608:
-------------------------------

Integrated in HBase-0.92-security #116 (See [https://builds.apache.org/job/HBase-0.92-security/116/])
    HBASE-6608 Fix for HBASE-6160, META entries from daughters can be deleted before parent
entries, shouldn't compare HRegionInfo's (Enis) (Revision 1375159)

     Result = FAILURE
tedyu : 
Files : 
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java
* /hbase/branches/0.92/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java

                
> Fix for HBASE-6160, META entries from daughters can be deleted before parent entries,
shouldn't compare HRegionInfo's
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6608
>                 URL: https://issues.apache.org/jira/browse/HBASE-6608
>             Project: HBase
>          Issue Type: Bug
>          Components: client, regionserver
>    Affects Versions: 0.92.1, 0.96.0, 0.94.2
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 0.92.2, 0.96.0, 0.94.2
>
>         Attachments: 6608-v2.patch, hbase-6608_v1-0.92+0.94.patch, hbase-6608_v1.patch
>
>
> Our nightlies discovered that the patch for HBASE-6160 did not actually fix the issue
of "META entries from daughters can be deleted before parent entries". Instead of reopening
the HBASE-6160, it is cleaner to track it here. 
> The original issue is: 
> {quote}
> HBASE-5986 fixed and issue, where the client sees the META entry for the parent, but
not the children. However, after the fix, we have seen the following issue in tests:
> Region A is split to -> B, C
> Region B is split to -> D, E
> After some time, META entry for B is deleted since it is not needed anymore, but META
entry for Region A stays in META (C still refers it). In this case, the client throws RegionOfflineException
for B.
> {quote}
> The problem with the fix seems to be that we keep and compare HRegionInfo's in the HashSet
at CatalogJanitor.java#scan(), but HRI that are compared are not equal.  
> {code}
> HashSet<HRegionInfo> parentNotCleaned = new HashSet<HRegionInfo>(); //regions
whose parents are still around
>       for (Map.Entry<HRegionInfo, Result> e : splitParents.entrySet()) {
>         if (!parentNotCleaned.contains(e.getKey()) && cleanParent(e.getKey(),
e.getValue())) {
>           cleaned++;
>         } else {
> ...
> {code}
> In the above case, Meta row for region A will contain a serialized version of B that
is not offline. However Meta row for region B will contain a serialized version of B that
is offline (MetaEditor.offlineParentInMeta() does that). So the deserialized version we put
to HashSet and the deserialized version we query contains() from HashSet are different in
the offline field, thus HRI.equals() fail. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message