Uh oh!
There was an error while loading. Please reload this page.
HDDS-15775. Support IPv6 literal authorities in OzoneFS URI parsing - #10933
Conversation
BasicRootedOzoneFileSystem parsed the ofs authority with authority.split(":"),
which breaks on bracketed IPv6 literals (for example ofs://[::1]:9862): the
address itself contains colons, so the split yields more than two parts and the
URI is rejected. Parse with Guava HostAndPort instead, which is bracket-aware,
matching HddsUtils. The IPv6 literal is kept bracketed so the downstream
host:port assembly that builds the OM address stays unambiguous.
o3fs is unaffected: java.net.URI rejects a bracketed IPv6 literal embedded in a
bucket.volume.host authority, so o3fs reaches an IPv6 OM through configuration
(covered by HDDS-15773), not the URI authority.
Part of the IPv6 support epic HDDS-15763.The ofs authority fix hands the OM host to OzoneClientFactory.getRpcClient, which assembled the address with omHost + ":" + omRpcPort and validated it via OmUtils.resolveOmHost -> NetUtils.createSocketAddr(omHost, omPort). Both forms mishandle an IPv6 literal: a bare ::1 yields the ambiguous ::1:9862 and makes createSocketAddr reject it with "not a valid host:port authority". Assemble the address with HddsUtils.getHostPortString, which brackets IPv6 literals ([::1]:9862). Output is unchanged for hostnames and IPv4.
There was a problem hiding this comment.
Pull request overview
Note
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Adds IPv6-literal-aware parsing for OzoneFS URI authorities (eg ofs://[::1]:9862/...) so bracketed IPv6 hosts are handled correctly and OM addresses remain unambiguous.
Changes:
- Switch authority parsing to an IPv6-aware parser (
HostAndPort) inBasicRootedOzoneFileSystem. - Ensure OM host resolution / OM address configuration correctly brackets IPv6 literals via
getHostPortString. - Add/extend unit tests validating IPv6 literal handling in filesystem init and OM host resolution.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| hadoop-ozone/ozonefs-common/src/main/java/org/apache/hadoop/fs/ozone/BasicRootedOzoneFileSystem.java | Parse authority with HostAndPort and preserve bracketed IPv6 literals. |
| hadoop-ozone/ozonefs-common/src/test/java/org/apache/hadoop/fs/ozone/TestBasicOzoneFileSystems.java | Add parameterized test cases covering bracketed IPv6 authorities for OFS. |
| hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java | Build host:port via getHostPortString before createSocketAddr to support IPv6 literals. |
| hadoop-ozone/common/src/test/java/org/apache/hadoop/ozone/TestOmUtils.java | Add test ensuring IPv6 literals don’t fail parsing in resolveOmHost. |
| hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneClientFactory.java | Configure OM address using getHostPortString to avoid ambiguous IPv6 host:port strings. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
smengcl
left a comment
There was a problem hiding this comment.
looks good on the latest revision
Uh oh!
There was an error while loading. Please reload this page.
smengcl
commented
Aug 12, 2026
Thanks @rich7420 for the patch. |
* master: (196 commits) HDDS-15422. Stream read seek should not close stream (apache#10415) HDDS-16089. Improve MPU table evaluation efficiency in KeyLifeCycleService (apache#10949) HDDS-16169. Add old updateContainerState to handle upgrade path. (apache#11012) HDDS-16158. Fix sendDeleteKeysRequestAndClearList Authorization and FSO Trash Handling (apache#10996) HDDS-15911. Recon AI Assistant: add conversation memory for follow-up questions. (apache#10808) HDDS-15356. Make multi-buffer chunk checksum allocation-free (apache#10350) HDDS-15895. Make ServerNotLeaderException suggested leader flow IPv6-safe (apache#10807) HDDS-16118. Release snapshot DB handles before KeyDeletingService submits OM requests (apache#10987) HDDS-16125. Copy bucket snapshot in quota repair response to fix cache aliasing (apache#11004) HDDS-8082. Check for unnecessary newlines in config defaults (apache#10840) HDDS-15826. Recon: add cycle guard to NSSummary /du tree walks (apache#10723) HDDS-11620. Log SCM finalization completion (apache#10963) HDDS-16117. Failed FSO multipart complete leaks bucket namespace quota (apache#10984) HDDS-15961. Resolve linked bucket source properties consistently (apache#10859) HDDS-16072. Implement GetObjectAttributes: ETag, ObjectSize, StorageClass, and ObjectParts count (apache#10930). HDDS-16114. Avoid misleading Ozone mount warning in acceptance test results (apache#10979) HDDS-15761. Create test for OMMXBean (apache#10960) HDDS-15542. Closed-container reconciliation advances BCSID past a hole, masking missing chunks (apache#10496) HDDS-15776. Make S3 Gateway VirtualHostStyleFilter IPv6-safe (apache#10809) HDDS-15775. Support IPv6 literal authorities in OzoneFS URI parsing (apache#10933) ... Files with conflicts or requiring updates: --- hadoop-hdds/common/src/main/resources/ozone-default.xml hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/HeartbeatEndpointTask.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java hadoop-ozone/cli-debug/src/test/java/org/apache/hadoop/ozone/debug/om/TestContainerToKeyMapping.java hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneShellHA.java hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartRequestTests.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/InitialConstraintUpgradeAction.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/UnhealthyContainerReplicaMismatchAction.java hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HDDSVersion.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTaskDnsRefresh.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/node/TestDecommissionAndMaintenance.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyLifecycleService.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationDeleteRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationSetRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleSaveScanStateRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/OMVersionManagerTestUtils.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/protocolPB/TestOzoneManagerRequestHandler.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/ReconUpgradeAction.java
* master: (196 commits) HDDS-15422. Stream read seek should not close stream (apache#10415) HDDS-16089. Improve MPU table evaluation efficiency in KeyLifeCycleService (apache#10949) HDDS-16169. Add old updateContainerState to handle upgrade path. (apache#11012) HDDS-16158. Fix sendDeleteKeysRequestAndClearList Authorization and FSO Trash Handling (apache#10996) HDDS-15911. Recon AI Assistant: add conversation memory for follow-up questions. (apache#10808) HDDS-15356. Make multi-buffer chunk checksum allocation-free (apache#10350) HDDS-15895. Make ServerNotLeaderException suggested leader flow IPv6-safe (apache#10807) HDDS-16118. Release snapshot DB handles before KeyDeletingService submits OM requests (apache#10987) HDDS-16125. Copy bucket snapshot in quota repair response to fix cache aliasing (apache#11004) HDDS-8082. Check for unnecessary newlines in config defaults (apache#10840) HDDS-15826. Recon: add cycle guard to NSSummary /du tree walks (apache#10723) HDDS-11620. Log SCM finalization completion (apache#10963) HDDS-16117. Failed FSO multipart complete leaks bucket namespace quota (apache#10984) HDDS-15961. Resolve linked bucket source properties consistently (apache#10859) HDDS-16072. Implement GetObjectAttributes: ETag, ObjectSize, StorageClass, and ObjectParts count (apache#10930). HDDS-16114. Avoid misleading Ozone mount warning in acceptance test results (apache#10979) HDDS-15761. Create test for OMMXBean (apache#10960) HDDS-15542. Closed-container reconciliation advances BCSID past a hole, masking missing chunks (apache#10496) HDDS-15776. Make S3 Gateway VirtualHostStyleFilter IPv6-safe (apache#10809) HDDS-15775. Support IPv6 literal authorities in OzoneFS URI parsing (apache#10933) ... Files with conflicts or requiring updates: --- hadoop-hdds/common/src/main/resources/ozone-default.xml hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/HeartbeatEndpointTask.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java hadoop-ozone/cli-debug/src/test/java/org/apache/hadoop/ozone/debug/om/TestContainerToKeyMapping.java hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneShellHA.java hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartRequestTests.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/InitialConstraintUpgradeAction.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/UnhealthyContainerReplicaMismatchAction.java hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HDDSVersion.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTaskDnsRefresh.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/node/TestDecommissionAndMaintenance.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestFinalizeBlock.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmStartupInvalidApparentVersion.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyLifecycleService.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationDeleteRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationSetRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleSaveScanStateRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/OMVersionManagerTestUtils.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/protocolPB/TestOzoneManagerRequestHandler.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/TestOMLayoutFeature.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/ReconUpgradeAction.java
* master: (196 commits) HDDS-15422. Stream read seek should not close stream (apache#10415) HDDS-16089. Improve MPU table evaluation efficiency in KeyLifeCycleService (apache#10949) HDDS-16169. Add old updateContainerState to handle upgrade path. (apache#11012) HDDS-16158. Fix sendDeleteKeysRequestAndClearList Authorization and FSO Trash Handling (apache#10996) HDDS-15911. Recon AI Assistant: add conversation memory for follow-up questions. (apache#10808) HDDS-15356. Make multi-buffer chunk checksum allocation-free (apache#10350) HDDS-15895. Make ServerNotLeaderException suggested leader flow IPv6-safe (apache#10807) HDDS-16118. Release snapshot DB handles before KeyDeletingService submits OM requests (apache#10987) HDDS-16125. Copy bucket snapshot in quota repair response to fix cache aliasing (apache#11004) HDDS-8082. Check for unnecessary newlines in config defaults (apache#10840) HDDS-15826. Recon: add cycle guard to NSSummary /du tree walks (apache#10723) HDDS-11620. Log SCM finalization completion (apache#10963) HDDS-16117. Failed FSO multipart complete leaks bucket namespace quota (apache#10984) HDDS-15961. Resolve linked bucket source properties consistently (apache#10859) HDDS-16072. Implement GetObjectAttributes: ETag, ObjectSize, StorageClass, and ObjectParts count (apache#10930). HDDS-16114. Avoid misleading Ozone mount warning in acceptance test results (apache#10979) HDDS-15761. Create test for OMMXBean (apache#10960) HDDS-15542. Closed-container reconciliation advances BCSID past a hole, masking missing chunks (apache#10496) HDDS-15776. Make S3 Gateway VirtualHostStyleFilter IPv6-safe (apache#10809) HDDS-15775. Support IPv6 literal authorities in OzoneFS URI parsing (apache#10933) ... Files with conflicts or requiring updates: --- hadoop-hdds/common/src/main/resources/ozone-default.xml hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/HeartbeatEndpointTask.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java hadoop-ozone/cli-debug/src/test/java/org/apache/hadoop/ozone/debug/om/TestContainerToKeyMapping.java hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneShellHA.java hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartRequestTests.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/InitialConstraintUpgradeAction.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/UnhealthyContainerReplicaMismatchAction.java hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HDDSVersion.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTaskDnsRefresh.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/node/TestDecommissionAndMaintenance.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestFinalizeBlock.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmStartupInvalidApparentVersion.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyLifecycleService.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationDeleteRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationSetRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleSaveScanStateRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/OMVersionManagerTestUtils.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/protocolPB/TestOzoneManagerRequestHandler.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/TestOMLayoutFeature.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/ReconUpgradeAction.java
* master: (196 commits) HDDS-15422. Stream read seek should not close stream (apache#10415) HDDS-16089. Improve MPU table evaluation efficiency in KeyLifeCycleService (apache#10949) HDDS-16169. Add old updateContainerState to handle upgrade path. (apache#11012) HDDS-16158. Fix sendDeleteKeysRequestAndClearList Authorization and FSO Trash Handling (apache#10996) HDDS-15911. Recon AI Assistant: add conversation memory for follow-up questions. (apache#10808) HDDS-15356. Make multi-buffer chunk checksum allocation-free (apache#10350) HDDS-15895. Make ServerNotLeaderException suggested leader flow IPv6-safe (apache#10807) HDDS-16118. Release snapshot DB handles before KeyDeletingService submits OM requests (apache#10987) HDDS-16125. Copy bucket snapshot in quota repair response to fix cache aliasing (apache#11004) HDDS-8082. Check for unnecessary newlines in config defaults (apache#10840) HDDS-15826. Recon: add cycle guard to NSSummary /du tree walks (apache#10723) HDDS-11620. Log SCM finalization completion (apache#10963) HDDS-16117. Failed FSO multipart complete leaks bucket namespace quota (apache#10984) HDDS-15961. Resolve linked bucket source properties consistently (apache#10859) HDDS-16072. Implement GetObjectAttributes: ETag, ObjectSize, StorageClass, and ObjectParts count (apache#10930). HDDS-16114. Avoid misleading Ozone mount warning in acceptance test results (apache#10979) HDDS-15761. Create test for OMMXBean (apache#10960) HDDS-15542. Closed-container reconciliation advances BCSID past a hole, masking missing chunks (apache#10496) HDDS-15776. Make S3 Gateway VirtualHostStyleFilter IPv6-safe (apache#10809) HDDS-15775. Support IPv6 literal authorities in OzoneFS URI parsing (apache#10933) ... Files with conflicts or requiring updates: --- hadoop-hdds/common/src/main/resources/ozone-default.xml hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/endpoint/HeartbeatEndpointTask.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/replication/TestReplicationSupervisor.java hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/SCMNodeManager.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/node/TestSCMNodeManager.java hadoop-ozone/cli-debug/src/test/java/org/apache/hadoop/ozone/debug/om/TestContainerToKeyMapping.java hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/OmUtils.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestDNDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/upgrade/TestScmDataDistributionFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/service/TestBlockDeletionService.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/shell/TestOzoneShellHA.java hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartRequestTests.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/InitialConstraintUpgradeAction.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/UnhealthyContainerReplicaMismatchAction.java hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/HDDSVersion.java hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/states/endpoint/TestHeartbeatEndpointTaskDnsRefresh.java hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineManagerImpl.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/node/TestDecommissionAndMaintenance.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOMUpgradeFinalization.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/container/common/statemachine/commandhandler/TestFinalizeBlock.java hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmStartupInvalidApparentVersion.java hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/service/KeyLifecycleService.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationDeleteRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleConfigurationSetRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/lifecycle/TestOMLifecycleSaveScanStateRequest.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/OMVersionManagerTestUtils.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/protocolPB/TestOzoneManagerRequestHandler.java hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/upgrade/TestOMLayoutFeature.java hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/upgrade/ReconUpgradeAction.java
What changes were proposed in this pull request?
ofs://[::1]:9862/pathfails because the authority is split on every colon.BasicRootedOzoneFileSystem.java: the authority parsing splits on:, so a bracketed IPv6 literal yields more than two parts and throwsIllegalArgumentException(URI_EXCEPTION_TEXT).This change parses the authority with Guava
HostAndPort, which understands bracketed IPv6 literals and rejects out-of-range ports. IPv6 hosts are kept bracketed when the OM host:port address is reassembled so the downstream parse stays unambiguous.Why ofs only (o3fs is out of scope)
o3fs encodes the OM host inside the authority as
o3fs://bucket.volume.host:port. For an IPv6 literal that would beo3fs://bucket.volume.[::1]:9862/, where the brackets sit in the middle of the authority.java.net.URIrejects that form (URISyntaxException: Illegal character in hostname), so an o3fs IPv6 authority can never reach the filesystem to begin with. ofs puts the authority at the start (ofs://[::1]:9862/), whichjava.net.URIaccepts, so ofs is the only scheme where this fix is reachable.BasicOzoneFileSystem(o3fs) is left unchanged.Parent epic: HDDS-15763.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-15775
How was this patch tested?
Added
TestBasicOzoneFileSystemscases covering ofs authority parsing (hostname, service id, underscore host,[::1]:9862,[2001:db8::1]) and out-of-range port rejection.https://github.com/rich7420/ozone/actions/runs/30821150742