phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William Shen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-5101) ScanningResultIterator getScanMetrics throws NPE
Date Thu, 25 Apr 2019 18:41:00 GMT

    [ https://issues.apache.org/jira/browse/PHOENIX-5101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16826347#comment-16826347
] 

William Shen commented on PHOENIX-5101:
---------------------------------------

[~karanmehta93], thank you for taking a look.

I am running the server on hbase-1.2.12 with apache-phoenix-4.14.2-HBase-1.2, and I am using
apache-phoenix-4.14.2-HBase-1.2 client, which I believe is using hbase-1.2.5 client underneath.
The set up is a Java program, using JDBC connection, with metrics enabled, selecting from
a table size of 1000000 with a limit of 400000.

I agree that we should not default to the the null check approach... The NPE seems to occur
when the expected query size is above some threshold that the query behavior changed and triggered
something incorrectly around closing and resetting of the metrics, and it would be good to
track that down for a fix.

I am going to set up the debugger too, and see if I can find the difference.

> ScanningResultIterator getScanMetrics throws NPE
> ------------------------------------------------
>
>                 Key: PHOENIX-5101
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5101
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.1
>            Reporter: Reid Chan
>            Assignee: Karan Mehta
>            Priority: Major
>             Fix For: 4.15.0, 5.1.0, 4.14.2
>
>         Attachments: PHOENIX-5101.414-HBase-1.4.001.patch
>
>          Time Spent: 50m
>  Remaining Estimate: 0h
>
> {code}
> java.lang.NullPointerException
> 	at org.apache.phoenix.iterate.ScanningResultIterator.getScanMetrics(ScanningResultIterator.java:92)
> 	at org.apache.phoenix.iterate.ScanningResultIterator.close(ScanningResultIterator.java:79)
> 	at org.apache.phoenix.iterate.TableResultIterator.close(TableResultIterator.java:144)
> 	at org.apache.phoenix.iterate.LookAheadResultIterator$1.close(LookAheadResultIterator.java:42)
> 	at org.apache.phoenix.iterate.BaseResultIterators.close(BaseResultIterators.java:1439)
> 	at org.apache.phoenix.iterate.MergeSortResultIterator.close(MergeSortResultIterator.java:44)
> 	at org.apache.phoenix.jdbc.PhoenixResultSet.close(PhoenixResultSet.java:176)
> 	at org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:807)
> 	at org.apache.calcite.avatica.jdbc.JdbcResultSet.frame(JdbcResultSet.java:148)
> 	at org.apache.calcite.avatica.jdbc.JdbcResultSet.create(JdbcResultSet.java:101)
> 	at org.apache.calcite.avatica.jdbc.JdbcResultSet.create(JdbcResultSet.java:81)
> 	at org.apache.calcite.avatica.jdbc.JdbcMeta.prepareAndExecute(JdbcMeta.java:759)
> 	at org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:206)
> 	at org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:927)
> 	at org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:879)
> 	at org.apache.calcite.avatica.remote.AbstractHandler.apply(AbstractHandler.java:94)
> 	at org.apache.calcite.avatica.remote.ProtobufHandler.apply(ProtobufHandler.java:46)
> 	at org.apache.calcite.avatica.server.AvaticaProtobufHandler$2.call(AvaticaProtobufHandler.java:123)
> 	at org.apache.calcite.avatica.server.AvaticaProtobufHandler$2.call(AvaticaProtobufHandler.java:121)
> 	at org.apache.phoenix.queryserver.server.QueryServer$PhoenixDoAsCallback$1.run(QueryServer.java:500)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at javax.security.auth.Subject.doAs(Subject.java:422)
> 	at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1754)
> 	at org.apache.phoenix.queryserver.server.QueryServer$PhoenixDoAsCallback.doAsRemoteUser(QueryServer.java:497)
> 	at org.apache.calcite.avatica.server.HttpServer$Builder$1.doAsRemoteUser(HttpServer.java:884)
> 	at org.apache.calcite.avatica.server.AvaticaProtobufHandler.handle(AvaticaProtobufHandler.java:120)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:542)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:52)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.server.Server.handle(Server.java:499)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> 	at org.apache.phoenix.shaded.org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> 	at java.lang.Thread.run(Thread.java:745)
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message