HDDS-14935. [STS] Handle Latent Inconsistencies in S3 API Acl Checks#10009
Draft
fmorg-git wants to merge 13 commits intoapache:HDDS-13323-stsfrom
Draft
HDDS-14935. [STS] Handle Latent Inconsistencies in S3 API Acl Checks#10009fmorg-git wants to merge 13 commits intoapache:HDDS-13323-stsfrom
fmorg-git wants to merge 13 commits intoapache:HDDS-13323-stsfrom
Conversation
added 13 commits
March 13, 2026 09:49
…ize against it Conflicts: hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/OmKeyArgs.java
Conflicts: hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMMetadataReader.java
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.
Please describe your PR in detail:
PutObject(i.e. OMKeyCreateRequest, OMAllocateBlockRequest, OMKeyCommitRequest),DeleteObject(i.e. OMKeyDeleteRequest),PutObjectTagging(i.e. S3PutObjectTaggingRequest), etc. perform their ACL checks inpreExecute()which is on the OM leader RPC thread.However, APIs like
DeleteBucket(i.e. OMBucketDeleteRequest),PutBucketAcl(i.e. OMBucketSetAclRequest), etc. perform their ACL checks invalidateAndUpdateCache()which is on the Ratis apply thread. This affects STS in that the STSTokenIdentifier ThreadLocal currently is not available on the Ratis apply thread, so if the STS token has an inline session policy, some ACL checks that should pass would fail. This ticket addresses the inconsistency by ensuring the ThreadLocal is always available on the Ratis apply thread via updates toOzoneManagerStateMachine.A separate PR is already open to move the checks to the correct place (#9653 and https://issues.apache.org/jira/browse/HDDS-13855), but this ticket is a fallback in case any future API has the check in the incorrect place, so it won't break STS.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-14935
How was this patch tested?
unit tests, smoke tests