[ https://issues.apache.org/jira/browse/HBASE-18282?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16365078#comment-16365078 ]
Hudson commented on HBASE-18282: -------------------------------- SUCCESS: Integrated in Jenkins build HBase-1.2-IT #1070 (See [https://builds.apache.org/job/HBase-1.2-IT/1070/]) HBASE-18282 ReplicationLogCleaner can delete WALs not yet replicated in (apurtell: rev ef847f8417b0a300f242fe76769d46d7efb86570) * (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueues.java * (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.java * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/master/cleaner/TestLogsCleaner.java * (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKLockCleanerChore.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java * (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.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)