You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Rahul Challapalli (JIRA)" <ji...@apache.org> on 2017/02/08 22:10:42 UTC

[jira] [Commented] (DRILL-5245) Using filter and offset could lead to an assertion error in Calcite

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

Rahul Challapalli commented on DRILL-5245:
------------------------------------------

The above query only got past the Assertion error when I used an *OFFSET of 1*

> Using filter and offset could lead to an assertion error in Calcite
> -------------------------------------------------------------------
>
>                 Key: DRILL-5245
>                 URL: https://issues.apache.org/jira/browse/DRILL-5245
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 1.10.0
>            Reporter: Rahul Challapalli
>
> git.commit.id.abbrev=2af709f
> Based on the filter selectivity, the planner might think that the number of records from upstream in lesser than the "OFFSET" value and can fail with an assertion error. Though in reality the estimate based on filter selectivity could be wrong
> Below is one such example where I am hitting this issue
> {code}
> select * from (
>   select * from (
>     select d.*, concat(d.c_first_name, d.c_last_name) as name from (
>       SELECT 
>             *
>       FROM   catalog_sales,
>            customer
>       WHERE  cs_bill_customer_sk = c_customer_sk
>     ) as d 
>     order by d.c_email_address nulls first 
>   ) as d1 
>   where d1.name is not null
> ) d2
> OFFSET 1434510;
> {code}
> Exception from the logs
> {code}
> 2017-02-08 11:42:39,925 [27648b4f-98e5-22a9-f7d7-eccb587854a6:foreman] ERROR o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: AssertionError
> [Error Id: d026ab7f-9e11-4854-b39c-66a7846b6a3a on qa-node190.qa.lab:31010]
> org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: AssertionError
> [Error Id: d026ab7f-9e11-4854-b39c-66a7846b6a3a on qa-node190.qa.lab:31010]
>         at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:544) ~[drill-common-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:825) [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:945) [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:281) [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_111]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_111]
>         at java.lang.Thread.run(Thread.java:745) [na:1.7.0_111]
> Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: null
>         ... 4 common frames omitted
> Caused by: java.lang.AssertionError: null
>         at org.apache.calcite.rel.metadata.RelMetadataQuery.isNonNegative(RelMetadataQuery.java:524) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.rel.metadata.RelMetadataQuery.validateResult(RelMetadataQuery.java:543) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:87) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.rel.externalize.RelWriterImpl.explain_(RelWriterImpl.java:103) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.rel.externalize.RelWriterImpl.done(RelWriterImpl.java:160) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.rel.AbstractRelNode.explain(AbstractRelNode.java:283) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.calcite.plan.RelOptUtil.toString(RelOptUtil.java:1927) ~[calcite-core-1.4.0-drill-r19.jar:1.4.0-drill-r19]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.log(DefaultSqlHandler.java:138) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.log(DefaultSqlHandler.java:132) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:411) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.transform(DefaultSqlHandler.java:343) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:240) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:290) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:168) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPhysicalPlan(DrillSqlWorker.java:117) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:91) ~[drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:1018) [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:264) [drill-java-exec-1.10.0-SNAPSHOT.jar:1.10.0-SNAPSHOT]
>         ... 3 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)