[
https://issues.apache.org/jira/browse/PHOENIX-6705?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rushabh Shah updated PHOENIX-6705:
----------------------------------
Description:
PagedRegionScanner is throwing NPE if pagedFilter is not initialized. See the
stack trace below. We are running some version of phoenix 4.16 in conjunction
with hbase-1.6. But the problem exists in all phoenix versions.
{noformat}
[2022:05:03 12:11:50.306] [<class name>] [INFO ]
[o.a.p.iterate.BaseResultIterators] - Failed to execute task during cancel
java.util.concurrent.ExecutionException:
org.apache.phoenix.exception.PhoenixIOException:
org.apache.hadoop.hbase.DoNotRetryIOException: <table-name>: null
at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:122)
at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:88)
at
org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:230)
at
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
at
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
at
org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:340)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2963)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3212)
at
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36804)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2432)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
Caused by: java.lang.NullPointerException
at
org.apache.phoenix.coprocessor.PagedRegionScanner.next(PagedRegionScanner.java:85)
at
org.apache.phoenix.coprocessor.PagedRegionScanner.nextRaw(PagedRegionScanner.java:97)
at
org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:184)
... 10 more
{noformat}
This scan doesn't use PageFilter but encountered some Exception.
In the catch block, we don't check whether pagedFilter is initialized or not.
{code}
private boolean next(List<Cell> results, boolean raw) throws IOException {
try {
boolean hasMore = raw ? delegate.nextRaw(results) :
delegate.next(results);
if (pageFilter == null) {
return hasMore;
}
....
....
} catch (Exception e) {
pageFilter.init(); --------> pageFilter is not
initialized.
throw e;
}
}
{code}
was:
PagedRegionScanner is throwing NPE if pagedFilter is not initialized. See the
stack trace below. We are running some version of phoenix 4.16 in conjunction
with hbase-1.6. But the problem exists in all phoenix versions.
{noformat}
[2022:05:03 12:11:50.306] [MigrationJobLogger] [INFO ]
[o.a.p.iterate.BaseResultIterators] - Failed to execute task during cancel
java.util.concurrent.ExecutionException:
org.apache.phoenix.exception.PhoenixIOException:
org.apache.hadoop.hbase.DoNotRetryIOException: <table-name>: null
at org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:122)
at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:88)
at
org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:230)
at
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
at
org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
at
org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:340)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2963)
at
org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3212)
at
org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36804)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2432)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
Caused by: java.lang.NullPointerException
at
org.apache.phoenix.coprocessor.PagedRegionScanner.next(PagedRegionScanner.java:85)
at
org.apache.phoenix.coprocessor.PagedRegionScanner.nextRaw(PagedRegionScanner.java:97)
at
org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:184)
... 10 more
{noformat}
This scan doesn't use PageFilter but encountered some Exception.
In the catch block, we don't check whether pagedFilter is initialized or not.
{code}
private boolean next(List<Cell> results, boolean raw) throws IOException {
try {
boolean hasMore = raw ? delegate.nextRaw(results) :
delegate.next(results);
if (pageFilter == null) {
return hasMore;
}
....
....
} catch (Exception e) {
pageFilter.init(); --------> pageFilter is not
initialized.
throw e;
}
}
{code}
> PagedRegionScanner#next throws NPE if pagedFilter is not initialized.
> ---------------------------------------------------------------------
>
> Key: PHOENIX-6705
> URL: https://issues.apache.org/jira/browse/PHOENIX-6705
> Project: Phoenix
> Issue Type: Bug
> Components: core
> Reporter: Rushabh Shah
> Assignee: Rushabh Shah
> Priority: Major
>
> PagedRegionScanner is throwing NPE if pagedFilter is not initialized. See the
> stack trace below. We are running some version of phoenix 4.16 in conjunction
> with hbase-1.6. But the problem exists in all phoenix versions.
>
> {noformat}
> [2022:05:03 12:11:50.306] [<class name>] [INFO ]
> [o.a.p.iterate.BaseResultIterators] - Failed to execute task during cancel
> java.util.concurrent.ExecutionException:
> org.apache.phoenix.exception.PhoenixIOException:
> org.apache.hadoop.hbase.DoNotRetryIOException: <table-name>: null
> at
> org.apache.phoenix.util.ServerUtil.createIOException(ServerUtil.java:122)
> at org.apache.phoenix.util.ServerUtil.throwIOException(ServerUtil.java:88)
> at
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:230)
> at
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at
> org.apache.phoenix.coprocessor.DelegateRegionScanner.nextRaw(DelegateRegionScanner.java:82)
> at
> org.apache.phoenix.coprocessor.BaseScannerRegionObserver$RegionScannerHolder.nextRaw(BaseScannerRegionObserver.java:340)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2963)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:3212)
> at
> org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:36804)
> at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2432)
> at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:311)
> at
> org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:291)
> Caused by: java.lang.NullPointerException
> at
> org.apache.phoenix.coprocessor.PagedRegionScanner.next(PagedRegionScanner.java:85)
> at
> org.apache.phoenix.coprocessor.PagedRegionScanner.nextRaw(PagedRegionScanner.java:97)
> at
> org.apache.phoenix.iterate.RegionScannerFactory$1.nextRaw(RegionScannerFactory.java:184)
> ... 10 more
> {noformat}
> This scan doesn't use PageFilter but encountered some Exception.
> In the catch block, we don't check whether pagedFilter is initialized or not.
> {code}
> private boolean next(List<Cell> results, boolean raw) throws IOException {
> try {
> boolean hasMore = raw ? delegate.nextRaw(results) :
> delegate.next(results);
> if (pageFilter == null) {
> return hasMore;
> }
> ....
> ....
> } catch (Exception e) {
> pageFilter.init(); --------> pageFilter is not
> initialized.
> throw e;
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.20.7#820007)