[
https://issues.apache.org/jira/browse/SPARK-59832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
L. C. Hsieh resolved SPARK-59832.
---------------------------------
Fix Version/s: 5.0.0
Resolution: Fixed
Issue resolved by pull request 59117
[https://github.com/apache/spark/pull/59117]
> Fail on truncated input in the vectorized RLE reader
> ----------------------------------------------------
>
> Key: SPARK-59832
> URL: https://issues.apache.org/jira/browse/SPARK-59832
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Affects Versions: 3.5.8, 4.2.0, 4.3.0, 4.1.3, 4.0.4, 4.4.0
> Reporter: L. C. Hsieh
> Assignee: L. C. Hsieh
> Priority: Minor
> Labels: pull-request-available
> Fix For: 5.0.0
>
>
> Follow-up of SPARK-59812. The vectorized RLE/bit-packing hybrid reader
> (VectorizedRleValuesReader), used for definition/repetition levels,
> dictionary ids and booleans, does not fail when the encoded data ends before
> the requested values are read:
> * When readNextGroup() returns false at the end of the stream, the batch read
> and skip loops silently break, so dictionary ids and levels are only
> partially read or skipped.
> * readBooleans ignores the return value of readNextGroup(). At the end of the
> stream currentCount stays 0, so the loop makes no progress and never
> terminates.
> * readInteger() also ignores the return value of readNextGroup().
> * The length passed to sliceStream(length) for levels, and the PACKED run
> size `numGroups * bitWidth`, are read from the file without validation.
> The reader should fail with a ParquetDecodingException in these cases, like
> the other vectorized readers now do.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]