diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java index 6191578ca4d..6b62c266908 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java @@ -3235,7 +3235,14 @@ public class HRegionServer implements ClientProtos.ClientService.BlockingInterfa return builder.build(); } catch (IOException ie) { if (scannerName != null && ie instanceof NotServingRegionException) { - scanners.remove(scannerName); + RegionScannerHolder rsh = scanners.remove(scannerName); + if (rsh != null) { + try { + RegionScanner scanner = rsh.s; + scanner.close(); + leases.cancelLease(scannerName); + } catch (IOException e) {} + } } throw new ServiceException(ie); }