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>
(cherry picked from commit 62e3efccef
)
This commit is contained in:
parent
785a54661f
commit
3510db4d2d
|
@ -3233,9 +3233,17 @@ public class RSRpcServices implements HBaseRPCErrorHandler,
|
|||
RegionScannerImpl coreScanner = region.getScanner(scan);
|
||||
Shipper shipper = coreScanner;
|
||||
RegionScanner scanner = coreScanner;
|
||||
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);
|
||||
builder.setMvccReadPoint(scanner.getMvccReadPoint());
|
||||
|
|
Loading…
Reference in New Issue