diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java index b242ca7355..c2999ecf0c 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java @@ -528,6 +528,9 @@ public class ReplicationPeersZKImpl extends ReplicationStateZKBase implements Re if (queuesClient == null) return; try { List replicators = queuesClient.getListOfReplicators(); + if (replicators == null || replicators.isEmpty()) { + return; + } for (String replicator : replicators) { List queueIds = queuesClient.getAllQueues(replicator); for (String queueId : queueIds) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKLockCleanerChore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKLockCleanerChore.java index dc5338eca7..3fa30bf6e4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKLockCleanerChore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKLockCleanerChore.java @@ -76,7 +76,9 @@ public class ReplicationZKLockCleanerChore extends ScheduledChore { } Set rsSet = new HashSet(regionServers); List replicators = queues.getListOfReplicators(); - + if (replicators == null || replicators.isEmpty()) { + return; + } for (String replicator: replicators) { try { String lockNode = queues.getLockZNode(replicator); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java index 8311b8d804..f559510ac2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java @@ -80,6 +80,9 @@ public class ReplicationZKNodeCleaner { Set peerIds = new HashSet<>(this.replicationPeers.getAllPeerIds()); try { List replicators = this.queuesClient.getListOfReplicators(); + if (replicators == null || replicators.isEmpty()) { + return undeletedQueues; + } for (String replicator : replicators) { List queueIds = this.queuesClient.getAllQueues(replicator); for (String queueId : queueIds) { diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java index 9ecba11c3a..7731240cc4 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java @@ -98,7 +98,7 @@ public class ReplicationLogCleaner extends BaseLogCleanerDelegate { for (int retry = 0; ; retry++) { int v0 = replicationQueues.getQueuesZNodeCversion(); List rss = replicationQueues.getListOfReplicators(); - if (rss == null) { + if (rss == null || rss.isEmpty()) { LOG.debug("Didn't find any region server that replicates, won't prevent any deletions."); return ImmutableSet.of(); } diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java index 0772f890f4..ee909041b2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java @@ -307,6 +307,9 @@ public class DumpReplicationQueues extends Configured implements Tool { // Loops each peer on each RS and dumps the queues try { List regionservers = queuesClient.getListOfReplicators(); + if (regionservers == null || regionservers.isEmpty()) { + return sb.toString(); + } for (String regionserver : regionservers) { List queueIds = queuesClient.getAllQueues(regionserver); replicationQueues.init(regionserver); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java index ed2aa1d319..b50e840525 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java @@ -254,7 +254,7 @@ public class ReplicationSourceManager implements ReplicationListener { } } List currentReplicators = this.replicationQueues.getListOfReplicators(); - if (currentReplicators == null || currentReplicators.size() == 0) { + if (currentReplicators == null || currentReplicators.isEmpty()) { return; } List otherRegionServers = replicationTracker.getListOfRegionServers();