You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "alex kamil (JIRA)" <ji...@apache.org> on 2016/02/16 07:31:18 UTC

[jira] [Comment Edited] (PHOENIX-2672) OutOfOrderScannerNextException in SELECT DISTINCT query over tenant connection

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

alex kamil edited comment on PHOENIX-2672 at 2/16/16 6:30 AM:
--------------------------------------------------------------

[~anoop.hbase], increasing timeouts didn't help and this error shows up even when number of rows retrieved is <100. This happens only with this particular hbase/phoenix combination (Phoenix4.6 with HBase-1.0-cdh5.5.1). I submitted another jira with OutOfOrderScannerNextException in joins, may be these are related  https://issues.apache.org/jira/browse/PHOENIX-2676


was (Author: alexdl):
[~anoop.hbase], increasing timeouts didn't help and this error shows up even when number of rows retrieved is <100. This happens only with this particular hbase/phoenix combination (Phoenix4.6 with HBase-1.0-cdh5.5.1). I submitted another jira with OutOfOrderScannerNextException in joins, may be these are related OutOfOrderScannerNextException https://issues.apache.org/jira/browse/PHOENIX-2676

> OutOfOrderScannerNextException in SELECT DISTINCT query over tenant connection
> ------------------------------------------------------------------------------
>
>                 Key: PHOENIX-2672
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-2672
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.6.0
>            Reporter: alex kamil
>
> I'm getting below exception in SELECT DISTINCT query using tenant-specific connection  with phoenix 4.6-HBase-1.0-cdh5.5 . 
> The exception disappears if I either switch to non-tenant connection, or remove DISTINCT from the query.
> Caused by: org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException:
> Expected nextCallSeq: 1 But the nextCallSeq got from client: 0; request=scanner_id: 2326 number_of_rows: 100 close_scanner: false next_call_seq: 0 client_handles_partials: true client_handles_heartbeats: true
> I'm using phoenix 4.6 for cloudera cdh5.5.1 community edition
>  https://github.com/chiastic-security/phoenix-for-cloudera/tree/4.6-HBase-1.0-cdh5.5 
> Below the test case, error log and hbase-site.xml settings:
> import java.sql.Connection;
> import java.sql.DriverManager;
> import java.sql.ResultSet;
> import java.sql.SQLException;
> import java.sql.Statement;
> import java.util.Properties; 
> public class Test {
>        public static void main (String [] args){
>               Connection conn = null;
>               String tenant  = SYSTEMTENANT;
>               String url  = "my.ip";
>               System.out.println("trying to initialize tenant-specific connection to hbaseUrl="+url+" for tenant="+tenant);
>               Properties connProps = new Properties();
>               connProps.setProperty("TenantId", tenant);
>               String query = "SELECT DISTINCT ROWKEY,VS FROM TABLE1 ORDER BY VS DESC";
>               try {
>                      conn = DriverManager.getConnection("jdbc:phoenix:"+url, connProps);
>                      Statement st = conn.createStatement();
>                      ResultSet resultSet = st.executeQuery(query);
>                      while(resultSet.next())
>                      {
>                            String rowKey = resultSet.getString(1);
>                            String versionSerial = resultSet.getString(2);
>                            System.out.println("rowkey="+rowKey+", versionserial="+versionSerial);
>                      }
>               } catch (SQLException e) {
>                      //     logger.error(e);
>                      e.printStackTrace();
>               }
>        }
> }
> Stack trace: 
> org.apache.phoenix.exception.PhoenixIOException: org.apache.phoenix.exception.PhoenixIOException: Failed after retry of OutOfOrderScannerNextException: was there a rpc timeout?
>        at org.apache.phoenix.util.ServerUtil.parseServerException(ServerUtil.java:108)
>        at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:558)
>        at org.apache.phoenix.iterate.MergeSortResultIterator.getIterators(MergeSortResultIterator.java:48)
>        at org.apache.phoenix.iterate.MergeSortResultIterator.minIterator(MergeSortResultIterator.java:84)
>        at org.apache.phoenix.iterate.MergeSortResultIterator.next(MergeSortResultIterator.java:111)
>        at org.apache.phoenix.iterate.BaseGroupedAggregatingResultIterator.next(BaseGroupedAggregatingResultIterator.java:64)
>        at org.apache.phoenix.jdbc.PhoenixResultSet.next(PhoenixResultSet.java:771)
>        at Test.main(Test.java:26)
> Caused by: 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(Unknown Source)
>        at java.util.concurrent.FutureTask.get(Unknown Source)
>        at org.apache.phoenix.iterate.BaseResultIterators.getIterators(BaseResultIterators.java:554)
>        ... 6 more
> 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:108)
>        at org.apache.phoenix.iterate.ScanningResultIterator.next(ScanningResultIterator.java:61)
>        at org.apache.phoenix.iterate.TableResultIterator.next(TableResultIterator.java:107)
>        at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:125)
>        at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:83)
>        at org.apache.phoenix.iterate.SpoolingResultIterator.<init>(SpoolingResultIterator.java:62)
>        at org.apache.phoenix.iterate.SpoolingResultIterator$SpoolingResultIteratorFactory.newIterator(SpoolingResultIterator.java:78)
>        at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:109)
>        at org.apache.phoenix.iterate.ParallelIterators$1.call(ParallelIterators.java:100)
>        at java.util.concurrent.FutureTask.run(Unknown Source)
>        at org.apache.phoenix.job.JobManager$InstrumentedJobFutureTask.run(JobManager.java:183)
>        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>        at java.lang.Thread.run(Unknown Source)
> Caused by: org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException:
> Expected nextCallSeq: 1 But the nextCallSeq got from client: 0; request=scanner_id: 2326 number_of_rows: 100 close_scanner: false next_call_seq: 0 client_handles_partials: true client_handles_heartbeats: true
>        at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2177)
>        at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32205)
>        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034)
>        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107)
>        at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130)
>        at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:107)
>        at java.lang.Thread.run(Thread.java:744) at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
>        at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)
>        at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:328)
>        at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:255)
>        at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:62)
>        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithoutRetries(RpcRetryingCaller.java:200)
>        at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:371)
>        at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:345)
>        at org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:126)
>        at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:64)
> hbase-site.xml settings:
> <property>
>                       <name>hbase.rpc.timeout</name>
>                       <value>60000</value>
>        </property>
>     <property>
>                      <name>hbase.client.scanner.caching</name>
>               <value>100</value>
>        </property>
>        <property>
>                      <name>phoenix.query.timeoutMs</name>
>               <value>60000</value>
>        </property>
>        <property>
>          <name>"hbase.client.scanner.timeout.period</name>
>            <value>60000</value>
>        </property>



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)