ParquetFileWriter.end() flushes an incomplete file to storage when finalizing fails
- 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