[ 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)