You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Lars Hofhansl (JIRA)" <ji...@apache.org> on 2012/10/12 07:38:56 UTC

[jira] [Closed] (HBASE-6050) HLogSplitter renaming recovered.edits and CJ removing the parent directory race, making the HBCK think cluster is inconsistent.

     [ https://issues.apache.org/jira/browse/HBASE-6050?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl closed HBASE-6050.
--------------------------------

    
> HLogSplitter renaming recovered.edits and CJ removing the parent directory race, making the HBCK think cluster is inconsistent.
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6050
>                 URL: https://issues.apache.org/jira/browse/HBASE-6050
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.1, 0.94.0
>            Reporter: ramkrishna.s.vasudevan
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.92.2, 0.94.1, 0.96.0
>
>         Attachments: HBASE-6050.patch
>
>
> The scenario is like this
> -> A region is getting splitted.
> -> The master is still not processed the split .
> -> Region server goes down.
> -> Split log manager starts splitting the logs and creates the recovered.edits in the splitlog path.
> -> CJ starts and deletes the entry from META and also just completes the deletion of the region dir.
> -> in hlogSplitter on final step we rename the recovered.edits to come under the regiondir.
> There if the regiondir doesnot exist we tend to create and then add the recovered.edits.
> Because of this HBCK thinks it to be an orphan region because we have the regiondir but with no regioninfo.
> Ideally cluster is fine but we it is misleading.
> {code}
>         } else {
>           Path dstdir = dst.getParent();
>           if (!fs.exists(dstdir)) {
>             if (!fs.mkdirs(dstdir)) LOG.warn("mkdir failed on " + dstdir);
>           }
>         }
>         fs.rename(src, dst);
>         LOG.debug(" moved " + src + " => " + dst);
>       } else {
>         LOG.debug("Could not move recovered edits from " + src +
>             " as it doesn't exist");
>       }
>     }
>     archiveLogs(null, corruptedLogs, processedLogs,
>         oldLogDir, fs, conf);
> {code}

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