Skip to content

Commit 2cbfe0c

Browse files
pankaj72981Jenkins
authored andcommitted
HBASE-26944 Possible resource leak while creating new region scanner (apache#4339)
* HBASE-26944 Possible resource leak while creating new region scanner Signed-off-by: Duo Zhang <[email protected]> (cherry picked from commit 62e3efc) (cherry picked from commit eea9e78) Change-Id: I2940cb2c2d9ff39f2e0c79a553f0d75f8cbbb896
1 parent 6ece78b commit 2cbfe0c

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RSRpcServices.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3202,8 +3202,16 @@ private Pair<String, RegionScannerHolder> newRegionScanner(ScanRequest request,
32023202
RegionScannerImpl coreScanner = region.getScanner(scan);
32033203
Shipper shipper = coreScanner;
32043204
RegionScanner scanner = coreScanner;
3205-
if (region.getCoprocessorHost() != null) {
3206-
scanner = region.getCoprocessorHost().postScannerOpen(scan, scanner);
3205+
try {
3206+
if (region.getCoprocessorHost() != null) {
3207+
scanner = region.getCoprocessorHost().postScannerOpen(scan, scanner);
3208+
}
3209+
} catch (Exception e) {
3210+
// Although region coprocessor is for advanced users and they should take care of the
3211+
// implementation to not damage the HBase system, closing the scanner on exception here does
3212+
// not have any bad side effect, so let's do it
3213+
scanner.close();
3214+
throw e;
32073215
}
32083216
long scannerId = scannerIdGenerator.generateNewScannerId();
32093217
builder.setScannerId(scannerId);

0 commit comments

Comments
 (0)