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

ramkrishna.s.vasudevan commented on HBASE-6050:
-----------------------------------------------

@Jon
In our case the split got completed and the RS went down due to ZK issue and 
that is why the Master was not able to respond to the split region completion.  
Because the RS went down the recovered.edits creation came into play.
Ideally CJ just cleans up the entire region directory because the parent is in 
splitted state and offlined.  Also in this case as the split is completed we 
are sure that the data is also flushed to store files. Daughter regions will 
have its own region directory.
Did i answer your question? ;)
                
> 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

        

Reply via email to