Repository: hbase
Updated Branches:
  refs/heads/branch-1 2da5b432a -> cfd5b6b59
  refs/heads/branch-1.1 ff7df565c -> b03a5e743
  refs/heads/branch-1.2 7db088b4b -> 7d2175eb3
  refs/heads/branch-1.3 8aabbdb3e -> 2b60f4ecd
  refs/heads/branch-1.4 68e9f2173 -> ffb702cd4
  refs/heads/branch-2 51067caef -> cbf390422
  refs/heads/master 5f54e2851 -> 01db60d65


HBASE-18330 NPE in ReplicationZKLockCleanerChore


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/01db60d6
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/01db60d6
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/01db60d6

Branch: refs/heads/master
Commit: 01db60d65b9a2dff0ca001323cb77a6e4e8d6f48
Parents: 5f54e28
Author: Andrew Purtell <apurt...@apache.org>
Authored: Wed Jul 19 15:46:08 2017 -0700
Committer: Andrew Purtell <apurt...@apache.org>
Committed: Wed Jul 19 15:46:08 2017 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java   | 3 +++
 .../hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java   | 2 +-
 .../hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java     | 3 +++
 .../hbase/replication/regionserver/DumpReplicationQueues.java     | 3 +++
 4 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/01db60d6/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java
----------------------------------------------------------------------
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 02fe2f1..751e454 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
@@ -520,6 +520,9 @@ public class ReplicationPeersZKImpl extends 
ReplicationStateZKBase implements Re
     if (queuesClient == null) return;
     try {
       List<String> replicators = queuesClient.getListOfReplicators();
+      if (replicators == null || replicators.isEmpty()) {
+        return;
+      }
       for (String replicator : replicators) {
         List<String> queueIds = queuesClient.getAllQueues(replicator);
         for (String queueId : queueIds) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/01db60d6/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java
----------------------------------------------------------------------
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java
index 0504373..0115b6f 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java
@@ -98,7 +98,7 @@ public class ReplicationQueuesClientZKImpl extends 
ReplicationStateZKBase implem
     for (int retry = 0; ; retry++) {
       int v0 = getQueuesZNodeCversion();
       List<String> rss = 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();
       }

http://git-wip-us.apache.org/repos/asf/hbase/blob/01db60d6/hbase-server/src/main/java/org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.java
----------------------------------------------------------------------
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 dafc4f8..6d8962e 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
@@ -77,6 +77,9 @@ public class ReplicationZKNodeCleaner {
     Set<String> peerIds = new HashSet<>(this.replicationPeers.getAllPeerIds());
     try {
       List<String> replicators = this.queuesClient.getListOfReplicators();
+      if (replicators == null || replicators.isEmpty()) {
+        return undeletedQueues;
+      }
       for (String replicator : replicators) {
         List<String> queueIds = this.queuesClient.getAllQueues(replicator);
         for (String queueId : queueIds) {

http://git-wip-us.apache.org/repos/asf/hbase/blob/01db60d6/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java
----------------------------------------------------------------------
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 2bedbfd..4bda75b 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
@@ -323,6 +323,9 @@ public class DumpReplicationQueues extends Configured 
implements Tool {
     // Loops each peer on each RS and dumps the queues
     try {
       List<String> regionservers = queuesClient.getListOfReplicators();
+      if (regionservers == null || regionservers.isEmpty()) {
+        return sb.toString();
+      }
       for (String regionserver : regionservers) {
         List<String> queueIds = queuesClient.getAllQueues(regionserver);
         replicationQueues.init(regionserver);

Reply via email to