Encrypted parquet files can't have more than 32767 pages per chunk: 32768
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.6k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 33
Description
When we were writing an encrypted file, we encountered the following error:
```java
Encrypted parquet files can't have more than 32767 pages per chunk: 32768
```
**Error Stack:**
```java
org.apache.parquet.crypto.ParquetCryptoRuntimeException: Encrypted parquet files can't have more than 32767 pages per chunk: 32768
at org.apache.parquet.crypto.AesCipher.quickUpdatePageAAD(AesCipher.java:131)
at org.apache.parquet.hadoop.ColumnChunkPageWriteStore$ColumnChunkPageWriter.writePage(ColumnChunkPageWriteStore.java:178)
at org.apache.parquet.column.impl.ColumnWriterV1.writePage(ColumnWriterV1.java:67)
at org.apache.parquet.column.impl.ColumnWriterBase.writePage(ColumnWriterBase.java:392)
at org.apache.parquet.column.impl.ColumnWriteStoreBase.sizeCheck(ColumnWriteStoreBase.java:231)
at org.apache.parquet.column.impl.ColumnWriteStoreBase.endRecord(ColumnWriteStoreBase.java:216)
at org.apache.parquet.column.impl.ColumnWriteStoreV1.endRecord(ColumnWriteStoreV1.java:29)
at org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.endMessage(MessageColumnIO.java:295)
```
**Reasons:**
The `getBufferedSize` method of [FallbackValuesWriter](https://github.com/apache/parquet-mr/blob/19f284355847696fa254c789ab93c42db9af5982/parquet-column/src/main/java/org/apache/parquet/column/values/fallback/FallbackValuesWriter.java#L73)
returns raw data size to decide if we want to flush the page,
so the actual size of the page written could be much more smaller due to dictionary encoding. This prevents page being too big when fallback happens, but can also produce too many pages in a single column chunk. On the other side, the encryption module only supports up to 32767 pages per chunk, as we use `Short` to store page ordinal as a part of [AAD](https://github.com/apache/parquet-format/blob/master/Encryption.md#442-aad-suffix).
**Reproduce:**
**[reproduce.zip](reproduce.zip)**
**Reporter**: [Ence Wang](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=encewang)
#### Original Issue Attachments:
- [image-2024-02-04-19-21-41-207.png](https://issues.apache.org/jira/secure/attachment/13066457/image-2024-02-04-19-21-41-207.png)
- [reproduce.zip](https://issues.apache.org/jira/secure/attachment/13066328/reproduce.zip)
**Note**: *This issue was originally created as [PARQUET-2424](https://issues.apache.org/jira/browse/PARQUET-2424). 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
Assessment
This issue has not been assessed yet.