[ 
https://issues.apache.org/jira/browse/DRILL-3312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Deneche A. Hakim updated DRILL-3312:
------------------------------------
    Assignee: Hanifi Gunes  (was: Deneche A. Hakim)

> 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: Hanifi Gunes
>             Fix For: 1.2.0
>
>         Attachments: DRILL-3312.1.patch.txt
>
>
> 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)

Reply via email to