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

IndexOutOfBoundException when reading a wide parquet table with boolean columns

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.7.0
    • 0.8.0
    • Storage - Parquet
    • None

    Description

      I created a wide table with 128 Lineitem columns plus 6 additional boolean columns for a total of 134 columns via a CTAS script (see attached SQL). The source data is from TPCH scale factor 1 (smaller scale factor may not reproduce the problem). The creation of the table was Ok. Reading from the table gives an IOBE. See stack below. It seems to occur for the boolean columns.

      0: jdbc:drill:zk=local> select * from wide1 where 1=0;
      java.lang.IndexOutOfBoundsException: srcIndex: 97792
      	io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:255) ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
      	io.netty.buffer.WrappedByteBuf.setBytes(WrappedByteBuf.java:378) ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
      	io.netty.buffer.UnsafeDirectLittleEndian.setBytes(UnsafeDirectLittleEndian.java:25) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:4.0.24.Final]
      	io.netty.buffer.DrillBuf.setBytes(DrillBuf.java:645) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:4.0.24.Final]
      	io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:850) ~[netty-buffer-4.0.24.Final.jar:4.0.24.Final]
      	org.apache.drill.exec.store.parquet.columnreaders.BitReader.readField(BitReader.java:54) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ColumnReader.readValues(ColumnReader.java:120) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ColumnReader.processPageData(ColumnReader.java:169) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ColumnReader.determineSize(ColumnReader.java:146) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ColumnReader.processPages(ColumnReader.java:107) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.readAllFixedFields(ParquetRecordReader.java:367) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.next(ParquetRecordReader.java:413) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      	org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:158) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
      

      Attachments

        1. DRILL-2031-Parquet-bit-reader-fix-v2.patch
          9 kB
          Jason Altekruse
        2. DRILL-2031-Parquet-bit-reader-fix.patch
          8 kB
          Jason Altekruse
        3. wide1.sql
          2 kB
          Aman Sinha

        Activity

          People

            jaltekruse Jason Altekruse
            amansinha100 Aman Sinha
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: