Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8B6EC18967 for ; Fri, 20 Nov 2015 10:31:58 +0000 (UTC) Received: (qmail 81302 invoked by uid 500); 20 Nov 2015 10:31:58 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 81260 invoked by uid 500); 20 Nov 2015 10:31:58 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 81251 invoked by uid 99); 20 Nov 2015 10:31:58 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Nov 2015 10:31:58 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 17BECDFCE4; Fri, 20 Nov 2015 10:31:58 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ramkrishna@apache.org To: commits@hbase.apache.org Message-Id: <15b210b68dcd4faaa90dce3fc849581c@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: hbase git commit: HBASE-14840 Sink cluster reports data replication request as success though the data is not replicated(Ashish Singhi) Date: Fri, 20 Nov 2015 10:31:58 +0000 (UTC) Repository: hbase Updated Branches: refs/heads/branch-1.1 af3a2b619 -> 358178771 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/35817877 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/35817877 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/35817877 Branch: refs/heads/branch-1.1 Commit: 358178771716c08efaa03f1191351814f37002a5 Parents: af3a2b6 Author: ramkrishna Authored: Fri Nov 20 15:58:53 2015 +0530 Committer: ramkrishna Committed: Fri Nov 20 16:01:33 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/35817877/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 ec4f88e..d90a8e1 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 @@ -1705,16 +1705,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 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/35817877/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 8e59c2a..d63224b 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 @@ -51,6 +51,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.util.Bytes; import org.apache.hadoop.hbase.zookeeper.MiniZooKeeperCluster; @@ -60,6 +62,8 @@ import org.junit.Before; import org.junit.Test; import org.junit.experimental.categories.Category; +import com.google.protobuf.ServiceException; + @Category(LargeTests.class) public class TestMasterReplication { @@ -246,6 +250,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;