You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Andrew Pilloud (Jira)" <ji...@apache.org> on 2020/05/05 16:49:00 UTC

[jira] [Resolved] (BEAM-9661) LimitOffsetScanToOrderByLimitConverter IndexOutOfBoundsException

     [ https://issues.apache.org/jira/browse/BEAM-9661?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrew Pilloud resolved BEAM-9661.
----------------------------------
    Fix Version/s: 2.22.0
       Resolution: Fixed

> LimitOffsetScanToOrderByLimitConverter IndexOutOfBoundsException
> ----------------------------------------------------------------
>
>                 Key: BEAM-9661
>                 URL: https://issues.apache.org/jira/browse/BEAM-9661
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql-zetasql
>            Reporter: Andrew Pilloud
>            Assignee: Andrew Pilloud
>            Priority: Critical
>              Labels: zetasql-compliance
>             Fix For: 2.22.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Fourteen failures in shard 37, one failure in shard 44
> {code:java}
> java.lang.IndexOutOfBoundsException: index (4) must be less than size (1)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.collect.SingletonImmutableList.get(SingletonImmutableList.java:41)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexBuilder.makeInputRef(RexBuilder.java:855)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Sort.<init>(Sort.java:103)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.<init>(LogicalSort.java:37)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.create(LogicalSort.java:63)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLimitConverter.java:74)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLimitConverter.java:40)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertNode(QueryStatementConverter.java:97)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convert(QueryStatementConverter.java:84)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertRootQuery(QueryStatementConverter.java:51)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.rel(ZetaSQLPlannerImpl.java:160)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRelInternal(ZetaSQLQueryPlanner.java:131)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:115)
> 	at cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl.executeQuery(ExecuteQueryServiceServer.java:242)
> 	at com.google.zetasql.testing.SqlComplianceServiceGrpc$MethodHandlers.invoke(SqlComplianceServiceGrpc.java:423)
> 	at com.google.zetasql.io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171)
> 	at com.google.zetasql.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:283)
> 	at com.google.zetasql.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:711)
> 	at com.google.zetasql.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
> 	at com.google.zetasql.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> {code}
> {code}
> Apr 01, 2020 11:50:41 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 2.2 a UNION ALL SELECT 1.1 UNION ALL SELECT 3.3) ORDER BY a LIMIT 0
> Apr 01, 2020 11:50:42 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 2.2 a UNION ALL SELECT 1.1 UNION ALL SELECT 3.3) ORDER BY a LIMIT 1
> Apr 01, 2020 11:50:43 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 2.2 a UNION ALL SELECT 1.1 UNION ALL SELECT 3.3) ORDER BY a LIMIT 2
> Apr 01, 2020 11:50:43 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 3.3 a UNION ALL SELECT 1.1 UNION ALL SELECT 2.2) ORDER BY a LIMIT 3
> Apr 01, 2020 11:50:44 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 3.3 a UNION ALL SELECT 1.1 UNION ALL SELECT 2.2) ORDER BY a LIMIT 4
> Apr 01, 2020 11:50:44 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 3.3 a UNION ALL SELECT 1.1 UNION ALL SELECT 2.2) ORDER BY a DESC LIMIT 1
> Apr 01, 2020 11:50:45 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 1 OFFSET 0
> Apr 01, 2020 11:50:45 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 1 OFFSET 1
> Apr 01, 2020 11:50:46 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 1 OFFSET 2
> Apr 01, 2020 11:50:46 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 1 OFFSET 3
> Apr 01, 2020 11:50:47 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 2 OFFSET 0
> Apr 01, 2020 11:50:47 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 2 OFFSET 1
> Apr 01, 2020 11:50:47 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 2 OFFSET 2
> Apr 01, 2020 11:50:48 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: SELECT a FROM (SELECT 'b' a UNION ALL SELECT 'c' UNION ALL SELECT 'a') ORDER BY a LIMIT 2 OFFSET 3
> {code}
> {code}
> SEVERE: !!!! index (9) must be less than size (2)
> java.lang.IndexOutOfBoundsException: index (9) must be less than size (2)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:310)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.base.Preconditions.checkElementIndex(Preconditions.java:293)
> 	at org.apache.beam.vendor.calcite.v1_20_0.com.google.common.collect.RegularImmutableList.get(RegularImmutableList.java:67)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rex.RexBuilder.makeInputRef(RexBuilder.java:855)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.core.Sort.<init>(Sort.java:103)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.<init>(LogicalSort.java:37)
> 	at org.apache.beam.vendor.calcite.v1_20_0.org.apache.calcite.rel.logical.LogicalSort.create(LogicalSort.java:63)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLimitConverter.java:74)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.LimitOffsetScanToOrderByLimitConverter.convert(LimitOffsetScanToOrderByLimitConverter.java:40)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertNode(QueryStatementConverter.java:97)
> 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> 	at java.util.Collections$2.tryAdvance(Collections.java:4717)
> 	at java.util.Collections$2.forEachRemaining(Collections.java:4725)
> 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
> 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
> 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
> 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertNode(QueryStatementConverter.java:96)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convert(QueryStatementConverter.java:84)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertRootQuery(QueryStatementConverter.java:51)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.rel(ZetaSQLPlannerImpl.java:160)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRelInternal(ZetaSQLQueryPlanner.java:131)
> 	at org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:115)
> 	at cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl.executeQuery(ExecuteQueryServiceServer.java:242)
> 	at com.google.zetasql.testing.SqlComplianceServiceGrpc$MethodHandlers.invoke(SqlComplianceServiceGrpc.java:423)
> 	at com.google.zetasql.io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171)
> 	at com.google.zetasql.io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:283)
> 	at com.google.zetasql.io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:711)
> 	at com.google.zetasql.io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
> 	at com.google.zetasql.io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> {code}
> {code}
> Apr 01, 2020 11:51:50 AM cloud.dataflow.sql.ExecuteQueryServiceServer$SqlComplianceServiceImpl executeQuery
> INFO: Processing Sql statement: select x from
>   (select x,y from
>     (select 1 as x, 0 as y union all
>      select 0, 0 union all
>      select 1, 0 union all
>      select 1, 1)
>    order by x limit 1)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)