This is an automated email from the ASF dual-hosted git repository.

hexiaoqiao pushed a commit to branch branch-3.4
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.4 by this push:
     new 1b06ac1856d HDFS-17834. Fix invalid HTTP links for DataNodes in IPv6 
environment (#8081). Contributed by sunhui.
1b06ac1856d is described below

commit 1b06ac1856d351ca24106ef6261966cdcc5e01c8
Author: mynameis180 <[email protected]>
AuthorDate: Thu Nov 20 16:51:05 2025 +0800

    HDFS-17834. Fix invalid HTTP links for DataNodes in IPv6 environment 
(#8081). Contributed by sunhui.
    
    Signed-off-by: He Xiaoqiao <[email protected]>
---
 .../src/main/webapps/router/federationhealth.js    | 22 ++++++++++++++++++++--
 .../hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js | 21 +++++++++++++++++++--
 2 files changed, 39 insertions(+), 4 deletions(-)

diff --git 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/webapps/router/federationhealth.js
 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/webapps/router/federationhealth.js
index 6220ca14a8c..9e94cf71e9d 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/webapps/router/federationhealth.js
+++ 
b/hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/webapps/router/federationhealth.js
@@ -278,9 +278,27 @@
         for (var i = 0, e = nodes.length; i < e; ++i) {
           var n = nodes[i];
           n.usedPercentage = Math.round((n.used + n.nonDfsUsedSpace) * 1.0 / 
n.capacity * 100);
-          var port = n.infoAddr.split(":")[1];
-          var securePort = n.infoSecureAddr.split(":")[1];
+
+          var infoAddrParts = n.infoAddr.split("]:");
           var dnHost = n.name.split(":")[0];
+          var port;
+          if (infoAddrParts.length > 1) {
+            // IPv6 url [xxxx:xxxx:...]:port
+            port = infoAddrParts[1];
+          } else {
+            // IPv4 url  host:port
+            port = n.infoAddr.split(":")[1];
+          }
+
+          var securePort = "0";
+          if (n.infoSecureAddr) {
+            var secureAddrParts = n.infoSecureAddr.split("]:");
+            if (secureAddrParts.length > 1) {
+              securePort = secureAddrParts[1];
+            } else {
+            securePort = n.infoSecureAddr.split(":")[1];
+            }
+          }
           n.dnWebAddress = "http://"; + dnHost + ":" + port;
           if (securePort != 0) {
             n.dnWebAddress = "https://"; + dnHost + ":" + securePort;
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js
index 8074755bfee..ef6df830f28 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/dfshealth.js
@@ -227,9 +227,26 @@
           var n = nodes[i];
           n.usedPercentage = Math.round((n.used + n.nonDfsUsedSpace) * 1.0 / 
n.capacity * 100);
 
-          var port = n.infoAddr.split(":")[1];
-          var securePort = n.infoSecureAddr.split(":")[1];
+          var infoAddrParts = n.infoAddr.split("]:");
           var dnHost = n.name.split(":")[0];
+          var port;
+          if (infoAddrParts.length > 1) {
+            // IPv6 url [xxxx:xxxx:...]:port
+            port = infoAddrParts[1];
+          } else {
+            // IPv4 url  host:port
+            port = n.infoAddr.split(":")[1];
+          }
+
+          var securePort = "0";
+          if (n.infoSecureAddr) {
+            var secureAddrParts = n.infoSecureAddr.split("]:");
+            if (secureAddrParts.length > 1) {
+              securePort = secureAddrParts[1];
+            } else {
+            securePort = n.infoSecureAddr.split(":")[1];
+            }
+          }
           n.dnWebAddress = "http://"; + dnHost + ":" + port;
           if (securePort != 0) {
             n.dnWebAddress = "https://"; + dnHost + ":" + securePort;


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to