Repository navigation
HDDS-16773. Release bucket quota once for duplicate DeleteKeys entries - #11821
Open
andyhuangdev wants to merge 1 commit into
Open
andyhuangdev wants to merge 1 commit into
andyhuangdev wants to merge 1 commit into
Conversation
Deduplicate resolved entries after validation, including FSO path aliases, and add regression tests for quota accounting and persistence. Tests: 32 key delete request and response tests passed; checkstyle and git diff --check passed.
andyhuangdev
marked this pull request as ready for review
October 29, 2026 00:44
jojochuang
approved these changes
Oct 29, 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.
What changes were proposed in this pull request?
A single DeleteKeys request can list the same key multiple times, causing OM to release its quota repeatedly. For empty keys, this can make bucket namespace usage negative and allow namespace quota limits to be exceeded. On FSO buckets, different path spellings can resolve to the same entry.
This patch deduplicates successfully validated entries using the DB key for OBS and LEGACY buckets, and the parent object ID plus file name for FSO buckets. Each entry releases quota once, while duplicate entries remain successful in the response. ACL and file status checks run before deduplication.
Regression tests cover repeated keys, FSO directories, and FSO path aliases, including persisted bucket usage and delete metrics. Previously affected buckets still require quota repair.
What is the link to the Apache JIRA
HDDS-16773
How was this patch tested?
Three regression tests failed before the fix and passed afterward.
All 32 tests in the following suites passed:
The repository checkstyle script and git diff --check also passed.