You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Khurram Faraaz (JIRA)" <ji...@apache.org> on 2015/11/27 05:44:10 UTC

[jira] [Commented] (DRILL-3639) Internal error: Error while applying rule PruneScanRule:Filter_On_Scan_Parquet

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

Khurram Faraaz commented on DRILL-3639:
---------------------------------------

With assertions enabled this can be seen on Drill 1.3.0 in drillbit.log after Functional run on 4 node cluster,  sys.version => d61bb83a8

{code}
Caused by: java.lang.AssertionError: Internal error: Error while applying rule HivePushPartitionFilterIntoScan:Filter_On_Project_Hive, args [rel#579999:DrillFilterRel.LOGICAL.ANY([]).[](input=rel#579998:Subset#8.LOGICAL.ANY([]).[],condition=AND(IS NOT NULL(CASE(>($6, 11), 2, null)), =($5, 1991))), rel#579997:DrillProjectRel.LOGICAL.ANY([]).[](input=rel#579996:Subset#7.LOGICAL.ANY([]).[],l_orderkey=$0,l_partkey=$2,l_quantity=$6,l_shipdate=$4,l_shipinstruct=$1,year=$3,month=$5), rel#579979:DrillScanRel.LOGICAL.ANY([]).[](table=[hive, lineitem_text_partitioned_hive_hier_intint],groupscan=HiveScan [table=Table(dbName:default, tableName:lineitem_text_partitioned_hive_hier_intint), inputSplits=[maprfs:///drill/testdata/partition_pruning/hive/text/lineitem_hierarchical_intint/1991/1/lineitemaa.tbl
...
at org.apache.calcite.util.Util.newInternal(Util.java:792) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:251) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:808) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:303) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:303) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToPrel(DefaultSqlHandler.java:277) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.sql.handlers.ExplainHandler.getPlan(ExplainHandler.java:69) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:184) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:905) [drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:244) [drill-java-exec-1.3.0.jar:1.3.0]
        ... 3 common frames omitted
Caused by: java.lang.AssertionError: null
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.popOpStackAndBuildFilter(FindPartitionConditions.java:188) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyzeCall(FindPartitionConditions.java:316) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:241) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:46) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:107) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.calcite.rex.RexVisitorImpl.visitCall(RexVisitorImpl.java:80) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyzeCall(FindPartitionConditions.java:265) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:241) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.visitCall(FindPartitionConditions.java:46) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.calcite.rex.RexCall.accept(RexCall.java:107) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at org.apache.drill.exec.planner.logical.partition.FindPartitionConditions.analyze(FindPartitionConditions.java:118) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.logical.partition.PruneScanRule.doOnMatch(PruneScanRule.java:189) ~[drill-java-exec-1.3.0.jar:1.3.0]
        at org.apache.drill.exec.planner.sql.logical.HivePushPartitionFilterIntoScan$1.onMatch(HivePushPartitionFilterIntoScan.java:63) ~[drill-storage-hive-core-1.3.0.jar:1.3.0]
        at org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228) ~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        ... 11 common frames omitted
{code}

> Internal error: Error while applying rule PruneScanRule:Filter_On_Scan_Parquet
> ------------------------------------------------------------------------------
>
>                 Key: DRILL-3639
>                 URL: https://issues.apache.org/jira/browse/DRILL-3639
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 1.1.0
>            Reporter: 徐波
>            Assignee: Jinfeng Ni
>             Fix For: 1.4.0
>
>
> exception:
> (org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception during fragment initialization: Internal error: Error while applying rule PruneScanRule:Filter_On_Scan_Parquet
> Caused By (java.lang.AssertionError) null
>     org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.isBitOn():490
>     org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanAnd():434
>     org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanOperator():332
>     org.apache.drill.exec.expr.fn.interpreter.InterpreterEvaluator$EvalVisitor.visitBooleanOperator():147
>     org.apache.drill.common.expression.BooleanOperator.accept():36
> my sql:
> select col1 from hdfs.root.`/dir/table1` where col2<cast('222222222.0' as double) and col3=101 limit 10
> col2 is not a partition column and col3 is a partition column, so the FindPartitionConditions get a wrong condition like 'AND(CAST('222222222.0'):DOUBLE NOT NULL, =($1, 101))'



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