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

[jira] [Commented] (HBASE-6700) [replication] empty znodes created during queue failovers aren't deleted

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

Hudson commented on HBASE-6700:
-------------------------------

Integrated in HBase-0.94-security-on-Hadoop-23 #9 (See [https://builds.apache.org/job/HBase-0.94-security-on-Hadoop-23/9/])
    HBASE-6700  [replication] empty znodes created during queue failovers aren't
            deleted (Terry Zhang via JD) (Revision 1403582)

     Result = FAILURE
jdcryans : 
Files : 
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/replication/ReplicationZookeeper.java

                
> [replication] empty znodes created during queue failovers aren't deleted
> ------------------------------------------------------------------------
>
>                 Key: HBASE-6700
>                 URL: https://issues.apache.org/jira/browse/HBASE-6700
>             Project: HBase
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 0.94.1
>            Reporter: terry zhang
>            Assignee: terry zhang
>             Fix For: 0.94.3, 0.96.0
>
>         Attachments: HBASE-6700.patch
>
>
> Please check code below
> {code:title=ReplicationSourceManager.java|borderStyle=solid}
> // NodeFailoverWorker class
> public void run() {
> {
>     ...
>       LOG.info("Moving " + rsZnode + "'s hlogs to my queue");
>       SortedMap<String, SortedSet<String>> newQueues =
>           zkHelper.copyQueuesFromRS(rsZnode);   // Node create here*
>       zkHelper.deleteRsQueues(rsZnode); 
>       if (newQueues == null || newQueues.size() == 0) {
>         return;  
>       }
>     ...
> }
>   public void closeRecoveredQueue(ReplicationSourceInterface src) {
>     LOG.info("Done with the recovered queue " + src.getPeerClusterZnode());
>     this.oldsources.remove(src);
>     this.zkHelper.deleteSource(src.getPeerClusterZnode(), false);  // Node delete here*
>   }
> {code} 
> So from code we can see if newQueues == null or newQueues.size() == 0, Failover replication Source will never start and the failover zk node will never deleted.
> eg below failover node will never be delete:
> [zk: 10.232.98.77:2181(CONNECTED) 16] ls /hbase-test3-repl/replication/rs/dw93.kgb.sqa.cm4,60020,1346337383956/1-dw93.kgb.sqa.cm4,60020,1346309263932-dw91.kgb.sqa.cm4,60020,1346307150041-dw89.kgb.sqa.cm4,60020,1346307911711-dw93.kgb.sqa.cm4,60020,1346312019213-dw88.kgb.sqa.cm4,60020,1346311774939-dw89.kgb.sqa.cm4,60020,1346312314229-dw93.kgb.sqa.cm4,60020,1346312524307-dw88.kgb.sqa.cm4,60020,1346313203367-dw89.kgb.sqa.cm4,60020,1346313944402-dw88.kgb.sqa.cm4,60020,1346314214286-dw91.kgb.sqa.cm4,60020,1346315119613-dw93.kgb.sqa.cm4,60020,1346314186436-dw88.kgb.sqa.cm4,60020,1346315594396-dw89.kgb.sqa.cm4,60020,1346315909491-dw92.kgb.sqa.cm4,60020,1346315315634-dw89.kgb.sqa.cm4,60020,1346316742242-dw93.kgb.sqa.cm4,60020,1346317604055-dw92.kgb.sqa.cm4,60020,1346318098972-dw91.kgb.sqa.cm4,60020,1346317855650-dw93.kgb.sqa.cm4,60020,1346318532530-dw92.kgb.sqa.cm4,60020,1346318573238-dw89.kgb.sqa.cm4,60020,1346321299040-dw91.kgb.sqa.cm4,60020,1346321304393-dw92.kgb.sqa.cm4,60020,1346325755894-dw89.kgb.sqa.cm4,60020,1346326520895-dw91.kgb.sqa.cm4,60020,1346328246992-dw92.kgb.sqa.cm4,60020,1346327290653-dw93.kgb.sqa.cm4,60020,1346337303018-dw91.kgb.sqa.cm4,60020,1346337318929
> [] // empty node will never be deleted
>        

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