Skip to content

HDDS-16139. Define and enforce OFS and O3FS IPv6 authority contracts - #11108

Open
echonesis wants to merge 1 commit into
apache:masterfrom
echonesis:HDDS-16139
Open

HDDS-16139. Define and enforce OFS and O3FS IPv6 authority contracts#11108
echonesis wants to merge 1 commit into
apache:masterfrom
echonesis:HDDS-16139

Conversation

@echonesis

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

This PR defines and enforces the supported IPv6 authority forms for OFS and O3FS following the URI parser changes in HDDS-15775.

  • Allow OFS authorities containing bracketed IPv6 literals, with or without an explicit port, such as ofs://[2001:db8::10]:9862/.
  • Reject all unbracketed IPv6 authorities in OFS with an error explaining that IPv6 literals must be enclosed in brackets.
  • Reject raw IPv6 literals in O3FS authorities with an error recommending an OM service ID or DNS name.
  • Preserve existing O3FS forms using bucket.volume, DNS names, IPv4 addresses, and OM service IDs.
  • Preserve support for o3fs://bucket.volume/ when the OM endpoint is supplied through configuration, including a configured bracketed IPv6 address.
  • Construct OM RPC addresses through the existing bracket-aware host-and-port helper so configured IPv6 addresses retain the required brackets.
  • Add coverage for URI construction, filesystem initialization, authority parsing, rejection behavior, configured IPv6 endpoints, and qualified-path round trips.

A dotted O3FS authority cannot contain a bracketed IPv6 literal such as bucket.volume.[2001:db8::10], because java.net.URI rejects that form before O3FS initialization. Therefore, O3FS requires a DNS name or OM service ID when an IPv6 endpoint must be represented in the dotted authority.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-16139

How was this patch tested?

Local Test

mvn -pl :ozone-filesystem-common -am test \
  -Dtest=TestBasicOzoneFileSystems,TestOmUtils,TestOMFailoverProxyProvider \
  -Dsurefire.failIfNoSpecifiedTests=false \
  -DskipShade -DskipRecon -DskipDocs

GitHub Actions CI: https://github.com/echonesis/ozone/actions/runs/32799667939

Generated-by: Codex (GPT-5)

@echonesis
echonesis marked this pull request as ready for review August 25, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant