You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@drill.apache.org by "Jinfeng Ni (JIRA)" <ji...@apache.org> on 2015/02/14 01:04:11 UTC

[jira] [Created] (DRILL-2249) Parquet reader hit IOBE when reading decimal type columns.

Jinfeng Ni created DRILL-2249:
---------------------------------

             Summary: Parquet reader hit IOBE when reading decimal type columns. 
                 Key: DRILL-2249
                 URL: https://issues.apache.org/jira/browse/DRILL-2249
             Project: Apache Drill
          Issue Type: Bug
          Components: Storage - Parquet, Storage - Writer
            Reporter: Jinfeng Ni
            Assignee: Steven Phillips


On today's master branch:

select commit_id from sys.version;
+------------+
| commit_id |
+------------+
| 4ed0a8d68ec5ef344fb54ff7c9d857f7f3f153aa |
+------------+

If I create a parquet file containing two decimal(10,2) columns as:

{code}
create table my_dec_table as select *, cast(o_totalprice as decimal(10,2)) dec1, cast(o_totalprice as decimal(10,2)) dec2 from cp.`tpch/orders.parquet`;

+------------+---------------------------+
| Fragment | Number of records written |
+------------+---------------------------+
| 0_0 | 15000 |
+------------+---------------------------+
1 row selected (1.977 seconds)
{code}

However, when I try to read from the new created parquet file, Drill report IOBE in parquet reader.

{code}
select * from my_dec_table;
Query failed: Query stopped., index: 22531, length: 1 (expected: range(0, 22531)) [ ee35bc67-5c70-4677-bf7f-8db12e4a5491 on 10.250.0.8:31010 ]
{code}

The plan looks fine to me for this query:

{code}
xplain plan for select * from my_dec_table;
+------------+------------+
|    text    |    json    |
+------------+------------+
| 00-00    Screen
00-01      Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=file:/Users/jni/work/data/tpcds/my_dec_table]], selectionRoot=/Users/jni/work/data/tpcds/my_dec_table, numFiles=1, columns=[`*`]]])
{code}

Here is part of the stack trace:

{code}
java.lang.IndexOutOfBoundsException: index: 22531, length: 1 (expected: range(0, 22531))
	at io.netty.buffer.DrillBuf.checkIndexD(DrillBuf.java:156) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:4.0.24.Final]
	at io.netty.buffer.DrillBuf.chk(DrillBuf.java:178) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:4.0.24.Final]
	at io.netty.buffer.DrillBuf.getByte(DrillBuf.java:673) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:4.0.24.Final]
	at org.apache.drill.exec.store.parquet.columnreaders.FixedByteAlignedReader$DateReader.readIntLittleEndian(FixedByteAlignedReader.java:144) ~[drill-java-exec-0.8.0-SNAPSHOT-rebuffed.jar:0.8.0-SNAPSHOT]
	at org.apache.drill.exec.store.parquet.columnreaders.FixedByteAlignedReader.......
{code}




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