drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deneche A. Hakim (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DRILL-3312) PageReader.allocatePageData() calls BufferAllocator.buffer(int) but doesn't check if the result is null
Date Thu, 18 Jun 2015 19:13:01 GMT
Deneche A. Hakim created DRILL-3312:
---------------------------------------

             Summary: PageReader.allocatePageData() calls BufferAllocator.buffer(int) but
doesn't check if the result is null
                 Key: DRILL-3312
                 URL: https://issues.apache.org/jira/browse/DRILL-3312
             Project: Apache Drill
          Issue Type: Bug
          Components: Storage - Parquet
            Reporter: Deneche A. Hakim
            Assignee: Steven Phillips


Trying to reproduce DRILL-3241, Drill returns the following error:
{noformat}
SYSTEM ERROR: org.apache.drill.common.exceptions.DrillRuntimeException: Error in parquet record
reader.
Message: 
Hadoop path: /Users/hakim/MapR/data/tpcds100/parquet/store_sales/1_10_1.parquet
Total records read: 0
Mock records read: 0
Records to read: 21845
Row group index: 0
Records in row group: 3348801
Parquet Metadata: ParquetMetaData{FileMetaData{schema: message root {
   ...omitted text
}
, metadata: {}}, blocks: [...omitted text]}

Fragment 3:0

[Error Id: 0f9ba088-3091-4166-b46f-53ab60d364f8 on 10.250.50.54:31010]{noformat}

The logs contain more information about the cause:
{noformat}
Caused by: java.lang.NullPointerException
	at org.apache.drill.exec.store.parquet.DirectCodecFactory$FullDirectDecompressor.decompress(DirectCodecFactory.java:238)
~[drill-java-exec-1.1.0-SNAPSHOT-rebuffed.jar:1.1.0-SNAPSHOT]
	at org.apache.drill.exec.store.parquet.columnreaders.PageReader.next(PageReader.java:230)
~[drill-java-exec-1.1.0-SNAPSHOT-rebuffed.jar:1.1.0-SNAPSHOT]
	at org.apache.drill.exec.store.parquet.columnreaders.NullableColumnReader.processPages(NullableColumnReader.java:76)
~[drill-java-exec-1.1.0-SNAPSHOT-rebuffed.jar:1.1.0-SNAPSHOT]
	at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.readAllFixedFields(ParquetRecordReader.java:380)
~[drill-java-exec-1.1.0-SNAPSHOT-rebuffed.jar:1.1.0-SNAPSHOT]
	at org.apache.drill.exec.store.parquet.columnreaders.ParquetRecordReader.next(ParquetRecordReader.java:423)
~[drill-java-exec-1.1.0-SNAPSHOT-rebuffed.jar:1.1.0-SNAPSHOT]
   ...
{noformat}

Just before that line, PageReader.next() calls the following method:
{noformat}
  private void allocatePageData(int size) {
    Preconditions.checkArgument(pageData == null);
    pageData = parentColumnReader.parentReader.getOperatorContext().getAllocator().buffer(size);
  }
{noformat}

this method should check the output of BufferAllocator.buffer(int) to make sure the buffer
was successfully allocated.



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

Mime
View raw message