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

StringIndexOutOfBoundsException seen with CONVERT_FROM function

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    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

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          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:

              Slack

                Issue deployment