You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/05/03 13:28:19 UTC
[06/28] hbase git commit: HBASE-20425 Do not write the cluster id of
the current active cluster when writing remote WAL
HBASE-20425 Do not write the cluster id of the current active cluster when writing remote WAL
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/88417a7b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/88417a7b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/88417a7b
Branch: refs/heads/HBASE-19064
Commit: 88417a7b1bf83518a10b94b2e07d8d7aa3dcd92c
Parents: b9c2d0b
Author: huzheng <op...@gmail.com>
Authored: Mon Apr 23 17:20:55 2018 +0800
Committer: zhangduo <zh...@apache.org>
Committed: Thu May 3 21:23:40 2018 +0800
----------------------------------------------------------------------
.../replication/TestSyncReplicationActive.java | 32 ++++++++++++++++++++
1 file changed, 32 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/88417a7b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java
index bff4572..f9020a0 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java
@@ -17,9 +17,17 @@
*/
package org.apache.hadoop.hbase.replication;
+import org.apache.hadoop.fs.FileStatus;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseClassTestRule;
+import org.apache.hadoop.hbase.HBaseTestingUtility;
import org.apache.hadoop.hbase.testclassification.LargeTests;
import org.apache.hadoop.hbase.testclassification.ReplicationTests;
+import org.apache.hadoop.hbase.wal.WAL.Entry;
+import org.apache.hadoop.hbase.wal.WAL.Reader;
+import org.apache.hadoop.hbase.wal.WALFactory;
+import org.junit.Assert;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -49,6 +57,9 @@ public class TestSyncReplicationActive extends SyncReplicationTestBase {
// peer is disabled so no data have been replicated
verifyNotReplicatedThroughRegion(UTIL2, 0, 100);
+ // Ensure that there's no cluster id in remote log entries.
+ verifyNoClusterIdInRemoteLog(UTIL2, PEER_ID);
+
UTIL2.getAdmin().transitReplicationPeerSyncReplicationState(PEER_ID,
SyncReplicationState.DOWNGRADE_ACTIVE);
// confirm that peer with state DA will reject replication request.
@@ -72,4 +83,25 @@ public class TestSyncReplicationActive extends SyncReplicationTestBase {
verifyReplicationRequestRejection(UTIL2, true);
write(UTIL2, 200, 300);
}
+
+ private void verifyNoClusterIdInRemoteLog(HBaseTestingUtility utility, String peerId)
+ throws Exception {
+ FileSystem fs2 = utility.getTestFileSystem();
+ Path remoteDir =
+ new Path(utility.getMiniHBaseCluster().getMaster().getMasterFileSystem().getRootDir(),
+ "remoteWALs").makeQualified(fs2.getUri(), fs2.getWorkingDirectory());
+ FileStatus[] files = fs2.listStatus(new Path(remoteDir, peerId));
+ Assert.assertTrue(files.length > 0);
+ for (FileStatus file : files) {
+ try (Reader reader =
+ WALFactory.createReader(fs2, file.getPath(), utility.getConfiguration())) {
+ Entry entry = reader.next();
+ Assert.assertTrue(entry != null);
+ while (entry != null) {
+ Assert.assertEquals(entry.getKey().getClusterIds().size(), 0);
+ entry = reader.next();
+ }
+ }
+ }
+ }
}