hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From syuanji...@apache.org
Subject [07/24] hbase git commit: HBASE-14840 Sink cluster reports data replication request as success though the data is not replicated (Ashish Singhi)
Date Tue, 24 Nov 2015 22:29:44 GMT
HBASE-14840 Sink cluster reports data replication request as success
though the data is not replicated (Ashish Singhi)


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

Branch: refs/heads/hbase-12439
Commit: 86be690b0723e814a655ad0ae8a6577d7111c1f2
Parents: 8dbbe96
Author: ramkrishna <ramkrishna.s.vasudevan@gmail.com>
Authored: Fri Nov 20 15:57:10 2015 +0530
Committer: ramkrishna <ramkrishna.s.vasudevan@gmail.com>
Committed: Fri Nov 20 15:57:10 2015 +0530

----------------------------------------------------------------------
 .../hbase/regionserver/RSRpcServices.java       |  6 +++--
 .../replication/TestMasterReplication.java      | 27 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/86be690b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
index 5729334..d94e11c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java
@@ -1794,16 +1794,18 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
   public ReplicateWALEntryResponse replicateWALEntry(final RpcController controller,
       final ReplicateWALEntryRequest request) throws ServiceException {
     try {
+      checkOpen();
       if (regionServer.replicationSinkHandler != null) {
-        checkOpen();
         requestCount.increment();
         List<WALEntry> entries = request.getEntryList();
         CellScanner cellScanner = ((PayloadCarryingRpcController)controller).cellScanner();
         regionServer.getRegionServerCoprocessorHost().preReplicateLogEntries(entries, cellScanner);
         regionServer.replicationSinkHandler.replicateLogEntries(entries, cellScanner);
         regionServer.getRegionServerCoprocessorHost().postReplicateLogEntries(entries, cellScanner);
+        return ReplicateWALEntryResponse.newBuilder().build();
+      } else {
+        throw new ServiceException("Replication services are not initialized yet");
       }
-      return ReplicateWALEntryResponse.newBuilder().build();
     } catch (IOException ie) {
       throw new ServiceException(ie);
     }

http://git-wip-us.apache.org/repos/asf/hbase/blob/86be690b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java
b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java
index 184fd14..455a790 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestMasterReplication.java
@@ -48,6 +48,8 @@ import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver;
 import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;
+import org.apache.hadoop.hbase.regionserver.HRegionServer;
+import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.testclassification.ReplicationTests;
@@ -59,6 +61,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import com.google.protobuf.ServiceException;
+
 @Category({ReplicationTests.class, LargeTests.class})
 public class TestMasterReplication {
 
@@ -245,6 +249,29 @@ public class TestMasterReplication {
     }
   }
 
+  /*
+   * Test RSRpcServices#replicateWALEntry when replication is disabled. This is to simulate
+   * HBASE-14840
+   */
+  @Test(timeout = 180000, expected = ServiceException.class)
+  public void testReplicateWALEntryWhenReplicationIsDisabled() throws Exception {
+    LOG.info("testSimplePutDelete");
+    baseConfiguration.setBoolean(HConstants.REPLICATION_ENABLE_KEY, false);
+    Table[] htables = null;
+    try {
+      startMiniClusters(1);
+      createTableOnClusters(table);
+      htables = getHTablesOnClusters(tableName);
+
+      HRegionServer rs = utilities[0].getRSForFirstRegionInTable(tableName);
+      RSRpcServices rsrpc = new RSRpcServices(rs);
+      rsrpc.replicateWALEntry(null, null);
+    } finally {
+      close(htables);
+      shutDownMiniClusters();
+    }
+  }
+
   @After
   public void tearDown() throws IOException {
     configurations = null;


Mime
View raw message