You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org> on 2012/05/19 17:02:21 UTC

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

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

ramkrishna.s.vasudevan updated HBASE-6050:
------------------------------------------

    Status: Patch Available  (was: Open)
    
> HLogSplitter renaming recovered.edits and CJ removing the parent directory races, making the HBCK to think cluster is inconsistent.
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6050
>                 URL: https://issues.apache.org/jira/browse/HBASE-6050
>             Project: HBase
>          Issue Type: Bug
>            Reporter: ramkrishna.s.vasudevan
>         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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira