hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18282) ReplicationLogCleaner can delete WALs not yet replicated in case of a KeeperException
Date Sat, 24 Feb 2018 11:18:00 GMT

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

Hudson commented on HBASE-18282:
--------------------------------

FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #4640 (See [https://builds.apache.org/job/HBase-Trunk_matrix/4640/])
HBASE-20054 Forward port HBASE-18282 ReplicationLogCleaner can delete (tedyu: rev 9a7645360bad99cc0dc42ae73f6dc779cbbdf490)
* (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java
* (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java


> ReplicationLogCleaner can delete WALs not yet replicated in case of a KeeperException
> -------------------------------------------------------------------------------------
>
>                 Key: HBASE-18282
>                 URL: https://issues.apache.org/jira/browse/HBASE-18282
>             Project: HBase
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 1.3.1, 1.2.6, 1.1.11, 2.0.0-alpha-1
>            Reporter: Ashu Pachauri
>            Assignee: Ben Lau
>            Priority: Critical
>             Fix For: 2.0.0, 1.3.2, 1.5.0, 1.2.7, 1.4.2
>
>         Attachments: HBASE-18282-branch-1-v2.patch, HBASE-18282-branch-1.patch, HBASE-18282-branch-2-v2.patch,
HBASE-18282-branch-2.patch
>
>
> ReplicationStateZKBase#getListOfReplicators does not rethrow a KeeperException and returns
null in such a case. ReplicationLogCleaner just assumes that there are no replicators and
deletes everything.
> ReplicationStateZKBase:
> {code:java}
> public List<String> getListOfReplicators() {
>     List<String> result = null;
>     try {
>       result = ZKUtil.listChildrenNoWatch(this.zookeeper, this.queuesZNode);
>     } catch (KeeperException e) {
>       this.abortable.abort("Failed to get list of replicators", e);
>     }
>     return result;
>   }
> {code}
> ReplicationLogCleaner:
> {code:java}
> private Set<String> loadWALsFromQueues() throws KeeperException {
>     for (int retry = 0; ; retry++) {
>       int v0 = replicationQueues.getQueuesZNodeCversion();
>       List<String> rss = replicationQueues.getListOfReplicators();
>       if (rss == null) {
>         LOG.debug("Didn't find any region server that replicates, won't prevent any deletions.");
>         return ImmutableSet.of();
>       }
>       ...
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message