You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by la...@apache.org on 2015/12/24 22:03:22 UTC

[3/4] hbase git commit: HBASE-14822; addendum - handle callSeq.

HBASE-14822; addendum - handle callSeq.


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

Branch: refs/heads/branch-1.2
Commit: ae8b3e06121873f958f13d7b95b2212087d6b55c
Parents: a7889b5
Author: Lars Hofhansl <la...@apache.org>
Authored: Thu Dec 24 12:55:39 2015 -0800
Committer: Lars Hofhansl <la...@apache.org>
Committed: Thu Dec 24 13:00:31 2015 -0800

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/regionserver/RSRpcServices.java  | 5 ++++-
 .../org/apache/hadoop/hbase/client/TestLeaseRenewal.java     | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/ae8b3e06/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 5ae6c82..f6a60db 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
@@ -2371,9 +2371,12 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
         ttl = this.scannerLeaseTimeoutPeriod;
       }
       if (request.hasRenew() && request.getRenew()) {
+        rsh = scanners.get(scannerName);
         lease = regionServer.leases.removeLease(scannerName);
-        if (lease != null && scanners.containsKey(scannerName)) {
+        if (lease != null && rsh != null) {
           regionServer.leases.addLease(lease);
+          // Increment the nextCallSeq value which is the next expected from client.
+          rsh.incNextCallSeq();
         }
         return builder.build();
       }

http://git-wip-us.apache.org/repos/asf/hbase/blob/ae8b3e06/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestLeaseRenewal.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestLeaseRenewal.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestLeaseRenewal.java
index fd9c9bb..3333f54 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestLeaseRenewal.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestLeaseRenewal.java
@@ -26,10 +26,13 @@ import java.util.Arrays;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.hbase.CompatibilityFactory;
 import org.apache.hadoop.hbase.HBaseTestingUtility;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.TableName;
+import org.apache.hadoop.hbase.ipc.MetricsHBaseServerSource;
+import org.apache.hadoop.hbase.test.MetricsAssertHelper;
 import org.apache.hadoop.hbase.testclassification.LargeTests;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.junit.After;
@@ -41,6 +44,8 @@ import org.junit.experimental.categories.Category;
 
 @Category(LargeTests.class)
 public class TestLeaseRenewal {
+  public MetricsAssertHelper HELPER = CompatibilityFactory.getInstance(MetricsAssertHelper.class);
+
   final Log LOG = LogFactory.getLog(getClass());
   private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
   private static byte[] FAMILY = Bytes.toBytes("testFamily");
@@ -121,5 +126,8 @@ public class TestLeaseRenewal {
     assertFalse(((AbstractClientScanner)rs).renewLease());
     rs.close();
     table.close();
+    MetricsHBaseServerSource serverSource = TEST_UTIL.getMiniHBaseCluster().getRegionServer(0)
+        .getRpcServer().getMetrics().getMetricsSource();
+    HELPER.assertCounter("exceptions.OutOfOrderScannerNextException", 0, serverSource);
   }
 }