apache / apache/parquet-java

ParquetFileWriter.end() flushes an incomplete file to storage when finalizing fails

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

Description

### Describe the bug, including details regarding any error messages, version, and platform.

close() in end()'s finally runs before the writer is marked aborted, so a failure serializing indexes/bloom filters/footer flushes the incomplete stream. And withAbortOnFailure only catches IOException, so a RuntimeException/Error (e.g. OOM) never aborts at all. On non-rename storage this leaves a corrupt file at the final path that a retried task silently reuses. Affects the parquet-hadoop writer path on master, any platform.

### Component(s)

Core

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating ParquetFileWriter.end() and withAbortOnFailure in the parquet-hadoop writer path, then trace the finally block and failure handling around serialization and close(). Check existing writer-finalization tests, if present. Done means serialization failures, including non-IOException failures, abort without flushing an incomplete file to the final path.

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
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.