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