[ 
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] [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}

  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: 
HBASE.MIGRATION_JOB,00DB0000000Dwou_IDX_COMMUNITIES.TERM_DOC_FREQUENCY\x00\x80\x00\x01c/\x1F\xBF\xB2,1536142054684.eb6044f9eca0ae1268cd7d31883e202f.:
 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] [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}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to