Skip to content

Core: Fix ManifestFilterManager canContainDroppedFiles - #18197

Open
grantatspothero wants to merge 2 commits into
apache:mainfrom
grantatspothero:gn/fixCanContainDroppedFilesDeleteManifestFilterManager
Open

grantatspothero wants to merge 2 commits into
apache:mainfrom
grantatspothero:gn/fixCanContainDroppedFilesDeleteManifestFilterManager

Conversation

@grantatspothero

Copy link
Copy Markdown
Contributor

#13222 introduced detecting dangling DV during ManifestFilterManager. But there are edge cases that cause dangling DVs to be skipped by accident.

See each commit for a description of the bug and a test that reproduces the behavior.

Orphaned DVs were sometimes never removed in ManifestFilterManager.
canContainDroppedFiles only returned true for a delete manifest whose
minSequenceNumber was below the dropDeleteFilesOlderThan threshold
when data files were also being removed in the same commit. A
commit that only calls dropDeleteFilesOlderThan (e.g. a plain append)
never admitted delete manifests for that check.
The deletePaths/deleteFiles/removedDataFilePaths checks were chained
as else-if branches, so once one of the earlier conditions applied,
later ones were never evaluated. This meant a manifest could be
skipped (and a dangling DV missed) whenever both deleteFiles and
removedDataFilePaths were non-empty
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant