apache / apache/parquet-java

Array Index OutOf Bounds Exception when fall Back Dictionary Encoded Data

Open
#2,488 2 comments 0 reactions 0 assignees View on GitHub
Component: Java Component: Parquet Priority: Major Type: bug
Dominant language
Java
Stars
3.1k
Forks
1.6k
Avg merge
3d 12h
Merged PRs (30d)
33

Description

java.lang.ArrayIndexOutOfBoundsException: 39782
\n\tat org.apache.parquet.column.values.dictionary.DictionaryValuesWriter$PlainBinaryDictionaryValuesWriter.fallBackDictionaryEncodedData(DictionaryValuesWriter.java:284)
\n\tat org.apache.parquet.column.values.dictionary.DictionaryValuesWriter.fallBackAllValuesTo(DictionaryValuesWriter.java:123)
\n\tat org.apache.parquet.column.values.fallback.FallbackValuesWriter.fallBack(FallbackValuesWriter.java:147)
\n\tat org.apache.parquet.column.values.fallback.FallbackValuesWriter.checkFallback(FallbackValuesWriter.java:141)
\n\tat org.apache.parquet.column.values.fallback.FallbackValuesWriter.writeBytes(FallbackValuesWriter.java:163)
\n\tat org.apache.parquet.column.impl.ColumnWriterV1.write(ColumnWriterV1.java:201)
\n\tat org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.addBinary(MessageColumnIO.java:467)
\n\tat org.apache.parquet.io.RecordConsumerLoggingWrapper.addBinary(RecordConsumerLoggingWrapper.java:119)
\n\tat org.apache.parquet.example.data.simple.BinaryValue.writeValue(BinaryValue.java:45)
\n\tat org.apache.parquet.example.data.simple.SimpleGroup.writeValue(SimpleGroup.java:229)
\n\tat org.apache.parquet.example.data.GroupWriter.writeGroup(GroupWriter.java:51)
\n\tat org.apache.parquet.example.data.GroupWriter.write(GroupWriter.java:37)
\n\tat org.apache.parquet.hadoop.example.GroupWriteSupport.write(GroupWriteSupport.java:79)
\n\tat org.apache.parquet.hadoop.example.GroupWriteSupport.write(GroupWriteSupport.java:36)
\n\tat org.apache.parquet.hadoop.InternalParquetRecordWriter.write(InternalParquetRecordWriter.java:123)
\n\tat org.apache.parquet.hadoop.ParquetWriter.write(ParquetWriter.java:293)

**Reporter**: [jiangbo](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jiangbo)

**Note**: *This issue was originally created as [PARQUET-1852](https://issues.apache.org/jira/browse/PARQUET-1852). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with DictionaryValuesWriter.java at fallBackDictionaryEncodedData, line 284, and trace the fallback calls through DictionaryValuesWriter.java, FallbackValuesWriter.java, and ColumnWriterV1.java. Determine the input that produces the reported ArrayIndexOutOfBoundsException and verify that the fallback path handles it without the exception, with regression coverage if an existing test entry point is identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.