From 30576991bcaf6917378117e2ec24e024203b3611 Mon Sep 17 00:00:00 2001 From: tedyu Date: Mon, 12 Dec 2016 09:38:55 -0800 Subject: [PATCH] HBASE-17289 Avoid adding a replication peer named "lock" --- .../replication/ReplicationPeersZKImpl.java | 2 +- .../replication/TestReplicationAdmin.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) 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 bb9842b772f..331e8bf31c4 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 @@ -113,7 +113,7 @@ public class ReplicationPeersZKImpl extends ReplicationStateZKBase implements Re + " because that id already exists."); } - if(id.contains("-")){ + if(id.contains("-") || id.equals(ReplicationQueuesZKImpl.RS_LOCK_ZNODE)) { throw new IllegalArgumentException("Found invalid peer name:" + id); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java index 775a6d80133..b5627c05a8e 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.java @@ -34,6 +34,7 @@ import org.apache.hadoop.hbase.replication.ReplicationFactory; import org.apache.hadoop.hbase.replication.ReplicationPeer; import org.apache.hadoop.hbase.replication.ReplicationPeerConfig; import org.apache.hadoop.hbase.replication.ReplicationQueues; +import org.apache.hadoop.hbase.replication.ReplicationQueuesZKImpl; import org.apache.hadoop.hbase.testclassification.MediumTests; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; import org.junit.AfterClass; @@ -108,6 +109,22 @@ public class TestReplicationAdmin { // OK! } assertEquals(1, admin.getPeersCount()); + + // try adding a peer contains "-" + try { + admin.addPeer(ID_ONE + "-" + ID_SECOND, KEY_ONE); + } catch (IllegalArgumentException iae) { + // OK! + } + assertEquals(1, admin.getPeersCount()); + // try adding a peer named "lock" + try { + admin.addPeer(ReplicationQueuesZKImpl.RS_LOCK_ZNODE, KEY_ONE); + } catch (IllegalArgumentException iae) { + // OK! + } + assertEquals(1, admin.getPeersCount()); + // Try to remove an inexisting peer try { admin.removePeer(ID_SECOND);