[ https://issues.apache.org/jira/browse/DRILL-2912?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mehant Baid reassigned DRILL-2912: ---------------------------------- Assignee: Mehant Baid (was: Steven Phillips) > Exception is not propagated correctly in case when directory contains mix of > file types > --------------------------------------------------------------------------------------- > > Key: DRILL-2912 > URL: https://issues.apache.org/jira/browse/DRILL-2912 > Project: Apache Drill > Issue Type: Bug > Components: Execution - Flow, Storage - JSON, Storage - Parquet > Reporter: Victoria Markman > Assignee: Mehant Baid > Fix For: 1.2.0 > > > While trying to read from directory that has a mix of parquet and json files > I ran into an exception: > {code} > 0: jdbc:drill:schema=dfs> select max(dir0) from bigtable; > Query failed: SYSTEM ERROR: Unexpected exception during fragment > initialization: Internal error: Error while applying rule > DrillPushProjIntoScan, args > [rel#4207:LogicalProject.NONE.ANY([]).[](input=rel#4206:Subset#0.ENUMERABLE.ANY([]).[],dir0=$1), > rel#4198:EnumerableTableScan.ENUMERABLE.ANY([]).[](table=[dfs, test, > bigtable])] > [72d7f7ee-3045-44d9-b13c-1d03bea4e22c on atsqa4-133.qa.lab:31010] > Error: exception while executing query: Failure while executing query. > (state=,code=0) > {code} > The real problem is that directory contains 2 parquet and one json files: > {code} > [Wed Apr 29 14:50:58 > root@/mapr/vmarkman.cluster.com/test/bigtable/F114/2014-03-27 ] # pwd > /mapr/vmarkman.cluster.com/test/bigtable/F114/2014-03-27 > [Wed Apr 29 14:51:06 > root@/mapr/vmarkman.cluster.com/test/bigtable/F114/2014-03-27 ] # ls -ltr > total 2 > -rwxr-xr-x 1 root root 483 Apr 16 16:05 0_0_0.parquet > -rwxr-xr-x 1 root root 483 Apr 17 13:06 > 214c279334946e65-7e32c56eed93cbc2_1965630551_data.0.parq > -rw-r--r-- 1 root root 17 Apr 23 15:24 t1.json > {code} > drillbit.log > {code} > [72d7f7ee-3045-44d9-b13c-1d03bea4e22c on atsqa4-133.qa.lab:31010] > org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: Unexpected > exception during fragment initialization: Internal error: Error while > applying rule DrillPushProjIntoScan, args > [rel#4207:LogicalProject.NONE.ANY([]).[](input=rel#4206:Subset#0.ENUMERABLE.ANY([]).[],dir0=$1), > rel#4198:EnumerableTableScan.ENUMERABLE.ANY([]).[](table=[dfs, test, > bigtable])] > [72d7f7ee-3045-44d9-b13c-1d03bea4e22c on atsqa4-133.qa.lab:31010] > at > org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:465) > ~[drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:620) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:717) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman$StateSwitch.processEvent(Foreman.java:659) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.common.EventProcessor.sendEvent(EventProcessor.java:73) > [drill-common-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman$StateSwitch.moveToState(Foreman.java:661) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:762) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:212) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > [na:1.7.0_71] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > [na:1.7.0_71] > at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] > Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected > exception during fragment initialization: Internal error: Error while > applying rule DrillPushProjIntoScan, args > [rel#4207:LogicalProject.NONE.ANY([]).[](input=rel#4206:Subset#0.ENUMERABLE.ANY([]).[],dir0=$1), > rel#4198:EnumerableTableScan.ENUMERABLE.ANY([]).[](table=[dfs, test, > bigtable])] > ... 4 common frames omitted > Caused by: java.lang.AssertionError: Internal error: Error while applying > rule DrillPushProjIntoScan, args > [rel#4207:LogicalProject.NONE.ANY([]).[](input=rel#4206:Subset#0.ENUMERABLE.ANY([]).[],dir0=$1), > rel#4198:EnumerableTableScan.ENUMERABLE.ANY([]).[](table=[dfs, test, > bigtable])] > at org.apache.calcite.util.Util.newInternal(Util.java:743) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:251) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > at > org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:795) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > at > org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:303) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > at > org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:316) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.convertToDrel(DefaultSqlHandler.java:241) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:152) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:167) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:773) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:203) > [drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > ... 3 common frames omitted > Caused by: org.apache.drill.common.exceptions.DrillRuntimeException: Failed > to read footer entries from parquet input files: > maprfs:/test/bigtable/F114/2014-03-27/t1.json is not a Parquet file. expected > magic number at tail [80, 65, 82, 49] but found [34, 32, 125, 10] > at > org.apache.drill.exec.store.parquet.ParquetGroupScan.readFooter(ParquetGroupScan.java:213) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.ParquetGroupScan.<init>(ParquetGroupScan.java:153) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.ParquetFormatPlugin.getGroupScan(ParquetFormatPlugin.java:166) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.ParquetFormatPlugin.getGroupScan(ParquetFormatPlugin.java:64) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.dfs.FileSystemPlugin.getPhysicalScan(FileSystemPlugin.java:126) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.AbstractStoragePlugin.getPhysicalScan(AbstractStoragePlugin.java:53) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.planner.logical.DrillTable.getGroupScan(DrillTable.java:72) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.planner.logical.DrillPushProjIntoScan.onMatch(DrillPushProjIntoScan.java:53) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:228) > ~[calcite-core-1.1.0-drill-r2.jar:1.1.0-drill-r2] > ... 11 common frames omitted > Caused by: java.io.IOException: maprfs:/test/bigtable/F114/2014-03-27/t1.json > is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but > found [34, 32, 125, 10] > at > org.apache.drill.exec.store.parquet.FooterGatherer.checkMagicBytes(FooterGatherer.java:63) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.FooterGatherer.readFooter(FooterGatherer.java:144) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.FooterGatherer$FooterReader.runInner(FooterGatherer.java:115) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.parquet.FooterGatherer$FooterReader.runInner(FooterGatherer.java:102) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.TimedRunnable.run(TimedRunnable.java:47) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > org.apache.drill.exec.store.TimedRunnable$LatchedRunnable.run(TimedRunnable.java:86) > ~[drill-java-exec-0.9.0-SNAPSHOT-rebuffed.jar:0.9.0-SNAPSHOT] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > ~[na:1.7.0_71] > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > ~[na:1.7.0_71] > ... 3 common frames omitted > {code} > This is a real problem: > {code} > Caused by: java.io.IOException: maprfs:/test/bigtable/F114/2014-03-27/t1.json > is not a Parquet file. expected magic number at tail [80, 65, 82, 49] but > found [34, 32, 125, 10] > at > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)