Uploaded image for project: 'Apache Drill'
  1. Apache Drill
  2. DRILL-4755

StringIndexOutOfBoundsException seen with CONVERT_FROM function

    XMLWordPrintableJSON

Details

    Description

      StringIndexOutOfBoundsException seen with CONVERT_FROM function
      Drill git commit ID : 6286c0a4

      0: jdbc:drill:schema=dfs.tmp> select CONVERT_FROM(binary_string(columns[0]),'INTEGER') from `binStrDuplcs.csv`;
      Error: SYSTEM ERROR: StringIndexOutOfBoundsException: String index out of range: -5
      
      
      [Error Id: 7e8fd49d-c6ac-40ac-849e-cf59145ed5dd on centos-01.qa.lab:31010]
      
        (org.apache.drill.exec.work.foreman.ForemanException) Unexpected exception during fragment initialization: String index out of range: -5
          org.apache.drill.exec.work.foreman.Foreman.run():271
          java.util.concurrent.ThreadPoolExecutor.runWorker():1142
          java.util.concurrent.ThreadPoolExecutor$Worker.run():617
          java.lang.Thread.run():745
        Caused By (java.lang.StringIndexOutOfBoundsException) String index out of range: -5
          java.lang.String.substring():1931
          org.apache.drill.exec.planner.logical.PreProcessLogicalRel.getConvertFunctionException():244
          org.apache.drill.exec.planner.logical.PreProcessLogicalRel.visit():148
          org.apache.calcite.rel.logical.LogicalProject.accept():132
          org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.preprocessNode():634
          org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert():196
          org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan():164
          org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan():94
          org.apache.drill.exec.work.foreman.Foreman.runSQL():978
          org.apache.drill.exec.work.foreman.Foreman.run():257
          java.util.concurrent.ThreadPoolExecutor.runWorker():1142
          java.util.concurrent.ThreadPoolExecutor$Worker.run():617
          java.lang.Thread.run():745 (state=,code=0)
      

      Stack trace from drillbit.log

      2016-06-27 05:31:02,515 [288f45e9-44ad-bc5e-3247-3e0ec4dc68e0:foreman] INFO  o.a.drill.exec.work.foreman.Foreman - Query text for query id 288f45e9-44ad-bc5e-3247-3e0ec4dc68e0: select CONVERT_FROM(binary_string(columns[0]),'INTEGER') from `binStrDuplcs.csv`
      2016-06-27 05:31:02,558 [288f45e9-44ad-bc5e-3247-3e0ec4dc68e0:foreman] ERROR o.a.drill.exec.work.foreman.Foreman - SYSTEM ERROR: StringIndexOutOfBoundsException: String index out of range: -5
      
      
      [Error Id: 7e8fd49d-c6ac-40ac-849e-cf59145ed5dd on centos-01.qa.lab:31010]
      org.apache.drill.common.exceptions.UserException: SYSTEM ERROR: StringIndexOutOfBoundsException: String index out of range: -5
      
      
      [Error Id: 7e8fd49d-c6ac-40ac-849e-cf59145ed5dd on centos-01.qa.lab:31010]
              at org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:543) ~[drill-common-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.work.foreman.Foreman$ForemanResult.close(Foreman.java:791) [drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.work.foreman.Foreman.moveToState(Foreman.java:901) [drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:271) [drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_91]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_91]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
      Caused by: org.apache.drill.exec.work.foreman.ForemanException: Unexpected exception during fragment initialization: String index out of range: -5
              ... 4 common frames omitted
      Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -5
              at java.lang.String.substring(String.java:1931) ~[na:1.8.0_91]
              at org.apache.drill.exec.planner.logical.PreProcessLogicalRel.getConvertFunctionException(PreProcessLogicalRel.java:244) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.planner.logical.PreProcessLogicalRel.visit(PreProcessLogicalRel.java:148) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.calcite.rel.logical.LogicalProject.accept(LogicalProject.java:132) ~[calcite-core-1.4.0-drill-r11.jar:1.4.0-drill-r11]
              at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.preprocessNode(DefaultSqlHandler.java:634) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateAndConvert(DefaultSqlHandler.java:196) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:164) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:94) ~[drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:978) [drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:257) [drill-java-exec-1.7.0-SNAPSHOT.jar:1.7.0-SNAPSHOT]
              ... 3 common frames omitted
      

      Data used in test

      [root@centos-01 ~]# cat binStrDuplcs.csv
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      '\\x99\\x8c\\x2f\\x77'
      

      Attachments

        1. date_data.csv
          33 kB
          Khurram Faraaz

        Issue Links

          Activity

            People

              volodymyr Vova Vysotskyi
              khfaraaz Khurram Faraaz
              Khurram Faraaz Khurram Faraaz
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: