Skip to content

HDDS-16773. Release bucket quota once for duplicate DeleteKeys entries - #11821

Open
andyhuangdev wants to merge 1 commit into
apache:masterfrom
andyhuangdev:HDDS-16773
Open

andyhuangdev wants to merge 1 commit into
apache:masterfrom
andyhuangdev:HDDS-16773

Conversation

@andyhuangdev

Copy link
Copy Markdown
Contributor

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:

  • TestOMKeysDeleteRequest
  • TestOMKeysDeleteRequestWithFSO
  • TestOMKeysDeleteResponse
  • TestOMKeysDeleteResponseWithFSO

The repository checkstyle script and git diff --check also passed.

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.
@github-actions github-actions Bot added the om label Oct 28, 2026
@andyhuangdev
andyhuangdev marked this pull request as ready for review October 29, 2026 00:44
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.

2 participants