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

Jeffrey Zhong commented on HBASE-9696:
--------------------------------------

[~jxiang] Do you have a more concret statck trace? From the code, when master 
restarts, it reads the merging RIT znodes to reconstruct the RIT state in the 
following code:
{code}
      case RS_ZK_REGION_MERGING:
...
          handleRegionMerging(rt, prettyPrintedRegionName, sn);
...
        break;
{code}

And in unsign(the move region request) we handle the merging issue as following:
{code}
              if (isSplitOrSplittingOrMergedOrMerging(path)) {
                LOG.debug(path + " is SPLIT or SPLITTING or MERGED or MERGING; 
" +
                  "skipping unassign because region no longer exists -- its 
split or merge");
                reassign = false; // no need to reassign for split/merged region
                return;
              }
{code}

It seems to me that the issue in the JIRA should be a very rare case(not the 
normal code path), right? Thanks.

> Master recovery ignores online merge znode
> ------------------------------------------
>
>                 Key: HBASE-9696
>                 URL: https://issues.apache.org/jira/browse/HBASE-9696
>             Project: HBase
>          Issue Type: Bug
>          Components: master, Region Assignment
>            Reporter: Jimmy Xiang
>            Assignee: Jimmy Xiang
>             Fix For: 0.98.0, 0.96.1
>
>         Attachments: trunk-9696.patch
>
>
> The online merge znode uses the new region to be created.  When master 
> restarts, the new region is still unknown if the merging is not completed. 
> Therefore the znode is ignored, which should not.  That means the two merging 
> regions could be moved around.  This could cause some data loss if we are not 
> luck.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to