Khurram Faraaz created DRILL-4055:
-------------------------------------

             Summary: Query over nested empty directory results in IOB Exception
                 Key: DRILL-4055
                 URL: https://issues.apache.org/jira/browse/DRILL-4055
             Project: Apache Drill
          Issue Type: Bug
          Components: Execution - Flow
    Affects Versions: 1.3.0
         Environment: 4 node cluster CentOS
            Reporter: Khurram Faraaz


SELECT * over a nested empty directory results in IOB Exception. We need a 
better error message that states that the directory being queried is empty.

git.commit.id=3a73f098

{code}
0: jdbc:drill:schema=dfs.tmp> select * from `nested_dirs/data/parquet`;
Error: VALIDATION ERROR: Index: 0, Size: 0


[Error Id: 18b21dac-199d-4e5f-8a28-7c91723e1b63 on centos-04.qa.lab:31010] 
(state=,code=0)

The below command does not return any results, which is expected since there 
are no files in the directory, it is empty.

[root@centos-01 ~]# hadoop fs -ls /tmp/nested_dirs/data/parquet
[root@centos-01 ~]#

Stack trace from drillbit.log

org.apache.drill.common.exceptions.UserException: VALIDATION ERROR: Index: 0, 
Size: 0


[Error Id: 18b21dac-199d-4e5f-8a28-7c91723e1b63 ]
        at 
org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:534)
 ~[drill-common-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:187)
 [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]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_85]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_85]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_85]
Caused by: org.apache.calcite.tools.ValidationException: 
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at 
org.apache.calcite.prepare.PlannerImpl.validate(PlannerImpl.java:179) 
~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at 
org.apache.calcite.prepare.PlannerImpl.validateAndGetType(PlannerImpl.java:188) 
~[calcite-core-1.4.0-drill-r8.jar:1.4.0-drill-r8]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:447)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:190)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
 at 
org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:159)
 ~[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]
        ... 5 common frames omitted
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
        at java.util.ArrayList.rangeCheck(ArrayList.java:635) ~[na:1.7.0_85]
        at java.util.ArrayList.get(ArrayList.java:411) ~[na:1.7.0_85]
        at 
org.apache.drill.exec.store.dfs.FileSelection.getFirstPath(FileSelection.java:126)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.store.dfs.BasicFormatMatcher.isReadable(BasicFormatMatcher.java:79)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.create(WorkspaceSchemaFactory.java:340)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.create(WorkspaceSchemaFactory.java:155)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.planner.sql.ExpandingConcurrentMap.getNewEntry(ExpandingConcurrentMap.java:96)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.planner.sql.ExpandingConcurrentMap.get(ExpandingConcurrentMap.java:90)
 ~[drill-java-exec-1.3.0.jar:1.3.0]
        at 
org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory$WorkspaceSchema.getTable(WorkspaceSchemaFactory.java:278)
 ~[drill-java-exec-1.3.0.jar:1.3.0
{code}



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

Reply via email to