[
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)