[
https://issues.apache.org/jira/browse/HDFS-17834?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18037602#comment-18037602
]
ASF GitHub Bot commented on HDFS-17834:
---------------------------------------
mynameis180 opened a new pull request, #8080:
URL: https://github.com/apache/hadoop/pull/8080
<!--
Thanks for sending a pull request!
1. If this is your first time, please read our contributor guidelines:
https://cwiki.apache.org/confluence/display/HADOOP/How+To+Contribute
2. Make sure your PR title starts with JIRA issue id, e.g.,
'HADOOP-17799. Your PR title ...'.
-->
## Description of PR
This PR fixes HDFS-17834: HDFS NameNode Web UI generates invalid HTTP links
for DataNodes in IPv6 environment.
### Problem
The NameNode Web UI incorrectly handles IPv6 addresses in DataNode links:
1. Fails to encapsulate IPv6 addresses in square brackets `[]` as required
by RFC 2732
2. Incorrectly parses IPv6 addresses, mistaking parts of the address for
port numbers
3. Generates malformed, unclickable links that don't point to the DataNode's
web interface
### Solution
- Properly wrap IPv6 addresses in square brackets for URL construction
- Fix the address parsing logic to correctly separate IPv6 addresses from
port numbers
- Ensure generated links follow RFC 2732 standards for IPv6 literal
addresses in URLs
### Example
Before: `https://datanodeHostname:30` (invalid)
After: `https://[1172:30:0:0:0:0:8a34]:50010` (valid)
## How was this patch tested?
- [x] Added unit tests for IPv6 address formatting in URL generation
- [x] Tested with existing IPv4 addresses to ensure no regression
- [x] Manual testing with IPv6 DataNode configurations
- [x] Verified generated links are clickable and point to correct DataNode
web interfaces
## For code changes:
- [x] Does the title or this PR starts with the corresponding JIRA issue id?
- [x] Object storage: have the integration tests been executed and the
endpoint declared according to the connector-specific documentation?
- [x] If adding new dependencies to the code, are these dependencies
licensed in a way that is compatible for inclusion under ASF 2.0?
- [x] If applicable, have you updated the LICENSE, LICENSE-binary,
NOTICE-binary files?
**Note:** This PR only contains code changes and no new dependencies were
added.
> HDFS NameNode Web UI generates invalid HTTP links for DataNodes in IPv6
> environment
> -----------------------------------------------------------------------------------
>
> Key: HDFS-17834
> URL: https://issues.apache.org/jira/browse/HDFS-17834
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 3.4.1
> Environment: !image-2025-09-10-10-12-28-486.png|width=545,height=298!
> Reporter: sunhui
> Priority: Minor
> Attachments: fixwebsite_support_ipv6.diff,
> image-2025-09-10-10-12-28-486.png
>
>
> In the HDFS NameNode Web UI
> (http://nn-host:9870/dfshealth.html#tab-datanode), the "Http Address" column
> for DataNodes generates completely corrupt and invalid links when the
> DataNode's address is an IPv6 literal.
> 1. It fails to encapsulate the IPv6 address in square brackets `[]`, which is
> required by RFC 2732. 2. More critically, it appears to **parse the IPv6
> address incorrectly**, mistaking a part of the address (e.g., the `30` in
> `1172:30:...`) for the port number, which completely breaks the URL. This
> results in a malformed, unclickable link that does not point to the
> DataNode's web interface. **Current Behavior & Evidence:** The DataNode's
> actual address is: `[1172:30:0:0:0:0:8a34]:50010` However, the NameNode UI
> displays the link as: `https://datanodeHostname:30` This link is **invalid**
> and leads nowhere. The UI has: - Stripped the original port `50010`. -
> Incorrectly extracted `30` (which is part of the IPv6 address) and used it as
> the port. - Failed to wrap the IPv6 address, leading to incorrect parsing.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]