Repository navigation
Remove uncommitted Iceberg data files after failed writes - #138
Draft
osipovartem wants to merge 1 commit into
Draft
osipovartem wants to merge 1 commit into
osipovartem wants to merge 1 commit into
Conversation
This was referenced Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Dependency and merge gate
Keep this PR draft as a standalone fork change. Its
Cargo.tomlstill resolves crates.io DataFusion 55.0.0, whose Parquet sink can return before its demux and writer tasks terminate on error. This cleanup could then delete a path before a late writer recreates it. Embucket/datafusion#167 fixes the sink, and Rustice pins both exact SHAs, so the paired Rustice integration is safe, but that pin does not protect other iceberg-rust consumers. Before merging this PR independently, ensure the fixed sink is guaranteed by a dependency all consumers actually resolve (or implement that guarantee in this fork); a workspace-only[patch.crates-io]does not propagate to downstream roots. The current late-input regression does not cover the writer-error race.Verification
cargo +1.95.0 test -p datafusion_iceberg --lib late_input_error_cleans_previously_written_data_file_without_limits: 1 passed locally.cargo +1.95.0 fmt --all -- --checkandgit diff --checkpassed.Performance