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

Jeffrey Zhong commented on HBASE-9098:
--------------------------------------

Thanks for the very good catch. Just providing more background details. In file 
HRegionInfo.java as following:
{code}
  public static HRegionInfo convert(final RegionInfo proto) {
    if (proto == null) return null;
    byte [] tableName = proto.getTableName().toByteArray();
    if (Bytes.equals(tableName, HConstants.META_TABLE_NAME)) {
      return FIRST_META_REGIONINFO;
    }
    long regionId = proto.getRegionId();
{code}

For META region recovery, we always return the constant FIRST_META_REGIONINFO 
whose recovering state is always false. The consequence is that we'll skip META 
region recovery.

I'll use ZK as the source of truth in the fix so the problematic area should be 
fixed.
                
> During recovery use ZK as the source of truth for region state 
> ---------------------------------------------------------------
>
>                 Key: HBASE-9098
>                 URL: https://issues.apache.org/jira/browse/HBASE-9098
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.95.0
>            Reporter: Devaraj Das
>            Assignee: Jeffrey Zhong
>            Priority: Blocker
>             Fix For: 0.95.2
>
>
> In HLogSplitter:locateRegionAndRefreshLastFlushedSequenceId(HConnection, 
> byte[], byte[], String), we talk to the replayee regionserver to figure out 
> whether a region is in recovery or not. We should look at ZK only for this 
> piece of information (since that is the source of truth for recovery 
> otherwise).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to