[jira] [Created] (PHOENIX-4606) SELECT DISTINCT cause OutOfOrderScannerNextException

2018-02-14 Thread Alexey Karpov (JIRA)
Alexey Karpov created PHOENIX-4606:
--

 Summary: SELECT DISTINCT cause OutOfOrderScannerNextException
 Key: PHOENIX-4606
 URL: https://issues.apache.org/jira/browse/PHOENIX-4606
 Project: Phoenix
  Issue Type: Bug
Affects Versions: 4.7.0
Reporter: Alexey Karpov


I am getting below exception in SELECT DISTINCT query if I use DISTINCT on 
VARCHAR column and there is a value with length more then 32 767 symbols. Same 
for GROUP BY operator.

The exception dissappears if I either delete this long value or use 
DISTINCT(SUBSTR(description, 0, 32767)).

I use HDP 2.6.4 and Phoenix 4.7

 Full exception:

org.apache.phoenix.iterate.BaseResultIterators: Failed to execute task during 
cancel

java.util.concurrent.ExecutionException: 
org.apache.phoenix.exception.PhoenixIOException: Failed after retry of 
OutOfOrderScannerNextException: was there a rpc timeout?

   at java.util.concurrent.FutureTask.report(FutureTask.java:122)

   at java.util.concurrent.FutureTask.get(FutureTask.java:192)

   at 
org.apache.phoenix.iterate.BaseResultIterators.close(BaseResultIterators.java:900)

   at 
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:836)

   at 
org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:719)

   at 
org.apache.phoenix.iterate.MergeSortResultIterator.getMinHeap(MergeSortResultIterator.java:72)

   at 
org.apache.phoenix.iterate.MergeSortResultIterator.minIterator(MergeSortResultIterator.java:93)

   at 
org.apache.phoenix.iterate.MergeSortResultIterator.next(MergeSortResultIterator.java:58)

   at 
org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)

   at 
org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:778)

   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:740)

   at 
org.apache.calcite.avatica.remote.LocalService.apply(LocalService.java:219)

   at 
org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:928)

   at 
org.apache.calcite.avatica.remote.Service$PrepareAndExecuteRequest.accept(Service.java:880)

   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.handle(AvaticaProtobufHandler.java:127)

   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)

Caused by: org.apache.phoenix.exception.PhoenixIOException: Failed after retry 
of OutOfOrderScannerNextException: was there a rpc timeout?

   at 
org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:115)

   at 
org.apache.phoenix.iterate.TableResultIterator.next(TableResultIterator.java:165)

   at 
org.apache.phoenix.iterate.OrderedResultIterator.getResultIterator(OrderedResultIterator.java:254)

   at 
org.apache.phoenix.iterate.OrderedResultIterator.peek(OrderedResultIterator.java:277)

   at 
org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:117)

   at 
org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:106)

   at java.util.concurrent.FutureTask.run(FutureTask.java:266)

   at 

[jira] [Created] (PHOENIX-4632) Phoenix does not use local index if there is a field in where clause not included in index

2018-02-28 Thread Alexey Karpov (JIRA)
Alexey Karpov created PHOENIX-4632:
--

 Summary: Phoenix does not use local index if there is a field in 
where clause not included in index
 Key: PHOENIX-4632
 URL: https://issues.apache.org/jira/browse/PHOENIX-4632
 Project: Phoenix
  Issue Type: Bug
Affects Versions: 4.7.0
Reporter: Alexey Karpov


HDP 2.6.2, Phoenix 4.7.0, HBase 1.1.2.2.6.2.0-205

If in WHERE clause you have one field from the local index and one not from
the index, combined with AND operator, Phoenix decides to do a full scan.

Steps to reproduce:

CREATE TABLE test (id integer NOT NULL PRIMARY KEY, 
name VARCHAR, description VARCHAR)

CREATE LOCAL INDEX ix_test_name ON test(name)

explain  SELECT * FROM test WHERE name = 'a' AND description = 'b' 

CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN FULL SCAN OVER TEST
 SERVER FILTER BY (NAME = 'a' AND DESCRIPTION = 'b')

After removing not indexed field in starts working as expected:

explain  SELECT * FROM test WHERE name = 'a' 

CLIENT 1-CHUNK PARALLEL 1-WAY ROUND ROBIN RANGE SCAN OVER TEST [1,'a']
 SERVER FILTER BY FIRST KEY ONLY

 



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