HBASE-26944 Possible resource leak while creating new region scanner (#4339)
* HBASE-26944 Possible resource leak while creating new region scanner Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
parent
f990f56e8e
commit
62e3efccef
|
@ -3203,8 +3203,16 @@ public class RSRpcServices extends HBaseRpcServicesBase<HRegionServer>
|
|||
RegionScannerImpl coreScanner = region.getScanner(scan);
|
||||
Shipper shipper = coreScanner;
|
||||
RegionScanner scanner = coreScanner;
|
||||
if (region.getCoprocessorHost() != null) {
|
||||
scanner = region.getCoprocessorHost().postScannerOpen(scan, scanner);
|
||||
try {
|
||||
if (region.getCoprocessorHost() != null) {
|
||||
scanner = region.getCoprocessorHost().postScannerOpen(scan, scanner);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// Although region coprocessor is for advanced users and they should take care of the
|
||||
// implementation to not damage the HBase system, closing the scanner on exception here does
|
||||
// not have any bad side effect, so let's do it
|
||||
scanner.close();
|
||||
throw e;
|
||||
}
|
||||
long scannerId = scannerIdGenerator.generateNewScannerId();
|
||||
builder.setScannerId(scannerId);
|
||||
|
|
Loading…
Reference in New Issue