From cd82eef304fac974088f5243a74bb6ee66682348 Mon Sep 17 00:00:00 2001 From: lujie Date: Tue, 12 Mar 2019 16:45:29 +0800 Subject: [PATCH] fix HBASE-22017 --- .../src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java | 3 +++ .../main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java index 0afa381..a73fdc2 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/Leases.java @@ -219,6 +219,9 @@ public class Leases extends HasThread { * @return Removed lease */ Lease removeLease(final String leaseName) throws LeaseException { + if (this.stopRequested) { + return null; + } Lease lease = leases.remove(leaseName); if (lease == null) { throw new LeaseException("lease '" + leaseName + "' does not exist"); 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 9b99ff8..4e32fa1 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 @@ -3439,6 +3439,10 @@ public class RSRpcServices implements HBaseRPCErrorHandler, } catch (LeaseException e) { throw new ServiceException(e); } + if (lease == null) { + throw new ServiceException(new IOException(scannerName + + " already be closed due to server shutdown")); + } if (request.hasRenew() && request.getRenew()) { // add back and return addScannerLeaseBack(lease); -- 1.8.3.1