You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Deneche A. Hakim (JIRA)" <ji...@apache.org> on 2015/01/29 20:27:36 UTC

[jira] [Commented] (DRILL-1834) Misleading error message when querying an empty Parquet file

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

Deneche A. Hakim commented on DRILL-1834:
-----------------------------------------

tried to reproduce the error using the latest version of the code and an empty file {{empty.parquet}}, Drill displays the proper error message:
{noformat}
0: jdbc:drill:zk=local> select * from `empty.parquet`;
Query failed: RuntimeException: file:/Users/hakim/MapR/data/empty.parquet is not a Parquet file (too small)

Error: exception while executing query: Failure while executing query. (state=,code=0)
{noformat}

> Misleading error message when querying an empty Parquet file
> ------------------------------------------------------------
>
>                 Key: DRILL-1834
>                 URL: https://issues.apache.org/jira/browse/DRILL-1834
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Flow
>    Affects Versions: 0.7.0
>            Reporter: Aman Sinha
>            Priority: Minor
>             Fix For: Future
>
>
> It is possible that a CTAS may fail and create an empty Parquet file.  When we run a query against this file, we get a misleading error message from the planner that hides the original IOException, although the log file does have the original exception: 
> {code:sql}
> 0: jdbc:drill:zk=local> select count(*) from dfs.`/tmp/empty.parquet`;
> Query failed: Query failed: Unexpected exception during fragment initialization: Internal error: Error while applying rule DrillPushProjIntoScan, args [rel#77:ProjectRel.NONE.ANY([]).[](child=rel#76:Subset#0.ENUMERABLE.ANY([]).[],$f0=0), rel#68:EnumerableTableAccessRel.ENUMERABLE.ANY([]).[](table=[dfs, /tmp/empty.parquet])]
> {code}
> The cause of the exception is in the logs: 
> Caused by: java.io.IOException: Could not read footer: java.lang.RuntimeException: file:/tmp/empty.parquet is not a Parquet file (too small)
>         at parquet.hadoop.ParquetFileReader.readAllFootersInParallel(ParquetFileReader.java:195) ~[parquet-hadoop-1.5.1-drill-r4.jar:0.7.0-SNAPSHOT]
>         at parquet.hadoop.ParquetFileReader.readAllFootersInParallel(ParquetFileReader.java:208) ~[parquet-hadoop-1.5.1-drill-r4.jar:0.7.0-SNAPSHOT]
>         at parquet.hadoop.ParquetFileReader.readFooters(ParquetFileReader.java:224) ~[parquet-hadoop-1.5.1-drill-r4.jar:0.7.0-SNAPSHOT]
>         at org.apache.drill.exec.store.parquet.ParquetGroupScan.readFooter(ParquetGroupScan.java:208) ~[drill-java-exec-0.7.0-SNAPSHOT-rebuffed.jar:0.7.0-SNAPSHOT]



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