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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new c87e8595402 [branch-2.0](cherry-pick)fix can not resolve host and port 
#25254 (#25759)
c87e8595402 is described below

commit c87e85954023e334d088e3f962624eafa0bf31a3
Author: zhangdong <493738...@qq.com>
AuthorDate: Tue Oct 24 13:19:56 2023 +0800

    [branch-2.0](cherry-pick)fix can not resolve host and port #25254 (#25759)
---
 .../java/org/apache/doris/alter/SystemHandler.java |  6 ++--
 .../analysis/AdminCancelRebalanceDiskStmt.java     |  4 ++-
 .../apache/doris/analysis/AdminCleanTrashStmt.java |  5 +++-
 .../doris/analysis/AdminRebalanceDiskStmt.java     |  5 +++-
 .../apache/doris/analysis/ShowTrashDiskStmt.java   |  3 +-
 .../java/org/apache/doris/catalog/BrokerMgr.java   |  7 +++--
 .../main/java/org/apache/doris/catalog/Env.java    |  6 ++--
 .../java/org/apache/doris/catalog/FsBroker.java    |  3 +-
 .../org/apache/doris/common/proc/TrashProcDir.java |  3 +-
 .../org/apache/doris/common/util/BrokerReader.java |  3 +-
 .../org/apache/doris/common/util/BrokerUtil.java   |  6 ++--
 .../doris/deploy/impl/AmbariDeployManager.java     |  4 ++-
 .../doris/fs/operations/BrokerFileOperations.java  |  4 ++-
 .../doris/httpv2/controller/BaseController.java    |  7 +++--
 .../doris/httpv2/rest/RestBaseController.java      |  4 ++-
 .../doris/httpv2/rest/TableQueryPlanAction.java    |  4 ++-
 .../doris/httpv2/rest/manager/ClusterAction.java   |  7 +++--
 .../doris/httpv2/rest/manager/NodeAction.java      | 35 ++++++++++++++--------
 .../httpv2/rest/manager/QueryProfileAction.java    |  4 ++-
 .../apache/doris/journal/bdbje/BDBJEJournal.java   |  8 +++--
 .../java/org/apache/doris/ldap/LdapClient.java     |  7 +++--
 .../org/apache/doris/master/ReportHandler.java     |  4 ++-
 .../java/org/apache/doris/metric/MetricRepo.java   |  7 +++--
 .../java/org/apache/doris/mysql/MysqlChannel.java  |  4 ++-
 .../java/org/apache/doris/qe/ShowExecutor.java     |  6 ++--
 .../org/apache/doris/system/SystemInfoService.java | 13 ++++----
 .../ExternalFileTableValuedFunction.java           |  4 ++-
 27 files changed, 119 insertions(+), 54 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/SystemHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/alter/SystemHandler.java
index 9695200a794..d4aae2d7dc0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SystemHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SystemHandler.java
@@ -38,6 +38,7 @@ import org.apache.doris.catalog.TabletInvertedIndex;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.DdlException;
 import org.apache.doris.common.UserException;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.ha.FrontendNodeType;
 import org.apache.doris.system.Backend;
 import org.apache.doris.system.SystemInfoService;
@@ -210,8 +211,7 @@ public class SystemHandler extends AlterHandler {
                     hostInfo.getPort());
             if (backend == null) {
                 throw new DdlException("Backend does not exist["
-                        + hostInfo.getHost()
-                        + ":" + hostInfo.getPort() + "]");
+                        + 
NetUtils.getHostPortInAccessibleFormat(hostInfo.getHost(), hostInfo.getPort()) 
+ "]");
             }
             if (backend.isDecommissioned()) {
                 // already under decommission, ignore it
@@ -239,7 +239,7 @@ public class SystemHandler extends AlterHandler {
                     hostInfo.getPort());
             if (backend == null) {
                 throw new DdlException("Backend does not exist["
-                        + hostInfo.getHost() + ":" + hostInfo.getPort() + "]");
+                        + 
NetUtils.getHostPortInAccessibleFormat(hostInfo.getHost(), hostInfo.getPort()) 
+ "]");
             }
 
             if (!backend.isDecommissioned()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmt.java
index 93f687db404..648e7ab47f1 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCancelRebalanceDiskStmt.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.system.Backend;
@@ -39,7 +40,8 @@ public class AdminCancelRebalanceDiskStmt extends DdlStmt {
         ImmutableMap<Long, Backend> backendsInfo = 
Env.getCurrentSystemInfo().getIdToBackend();
         Map<String, Long> backendsID = new HashMap<String, Long>();
         for (Backend backend : backendsInfo.values()) {
-            backendsID.put(backend.getHost() + ":" + 
backend.getHeartbeatPort(), backend.getId());
+            
backendsID.put(NetUtils.getHostPortInAccessibleFormat(backend.getHost(), 
backend.getHeartbeatPort()),
+                    backend.getId());
         }
         if (backends == null) {
             for (Backend backend : backendsInfo.values()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCleanTrashStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCleanTrashStmt.java
index d399f0afbca..64f1cccf5b6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCleanTrashStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminCleanTrashStmt.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.system.Backend;
@@ -39,7 +40,9 @@ public class AdminCleanTrashStmt extends DdlStmt {
         ImmutableMap<Long, Backend> backendsInfo = 
Env.getCurrentSystemInfo().getIdToBackend();
         Map<String, Long> backendsID = new HashMap<String, Long>();
         for (Backend backend : backendsInfo.values()) {
-            backendsID.put(backend.getHost() + ":" + 
backend.getHeartbeatPort(), backend.getId());
+            backendsID.put(
+                    NetUtils.getHostPortInAccessibleFormat(backend.getHost(), 
backend.getHeartbeatPort()),
+                    backend.getId());
         }
         if (backends == null) {
             for (Backend backend : backendsInfo.values()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminRebalanceDiskStmt.java
 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminRebalanceDiskStmt.java
index 2269f75aeee..69f230f33b6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminRebalanceDiskStmt.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/AdminRebalanceDiskStmt.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.system.Backend;
@@ -40,7 +41,9 @@ public class AdminRebalanceDiskStmt extends DdlStmt {
         ImmutableMap<Long, Backend> backendsInfo = 
Env.getCurrentSystemInfo().getIdToBackend();
         Map<String, Long> backendsID = new HashMap<String, Long>();
         for (Backend backend : backendsInfo.values()) {
-            backendsID.put(backend.getHost() + ":" + 
backend.getHeartbeatPort(), backend.getId());
+            backendsID.put(
+                    NetUtils.getHostPortInAccessibleFormat(backend.getHost(), 
backend.getHeartbeatPort()),
+                    backend.getId());
         }
         if (backends == null) {
             this.backends.addAll(backendsInfo.values());
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowTrashDiskStmt.java 
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowTrashDiskStmt.java
index 427a074e1ae..cdd3243dfc2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowTrashDiskStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ShowTrashDiskStmt.java
@@ -24,6 +24,7 @@ import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
 import org.apache.doris.common.proc.TrashProcNode;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.mysql.privilege.PrivPredicate;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.qe.ShowResultSetMetaData;
@@ -38,7 +39,7 @@ public class ShowTrashDiskStmt extends ShowStmt {
     public ShowTrashDiskStmt(String backendQuery) {
         ImmutableMap<Long, Backend> backendsInfo = 
Env.getCurrentSystemInfo().getIdToBackend();
         for (Backend backend : backendsInfo.values()) {
-            String backendStr = String.valueOf(backend.getHost()) + ":" + 
String.valueOf(backend.getHeartbeatPort());
+            String backendStr = 
NetUtils.getHostPortInAccessibleFormat(backend.getHost(), 
backend.getHeartbeatPort());
             if (backendQuery.equals(backendStr)) {
                 this.backend = backend;
                 break;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java
index 39c96c358d0..6595dfde66a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/BrokerMgr.java
@@ -27,6 +27,7 @@ import org.apache.doris.common.io.Writable;
 import org.apache.doris.common.proc.BaseProcResult;
 import org.apache.doris.common.proc.ProcNodeInterface;
 import org.apache.doris.common.proc.ProcResult;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.TimeUtils;
 
 import com.google.common.collect.ArrayListMultimap;
@@ -219,7 +220,8 @@ public class BrokerMgr {
                 List<FsBroker> addressList = brokerAddrsMap.get(pair.first);
                 for (FsBroker addr : addressList) {
                     if (addr.port == pair.second) {
-                        throw new DdlException("Broker(" + pair.first + ":" + 
pair.second
+                        throw new DdlException("Broker(" + NetUtils
+                                .getHostPortInAccessibleFormat(pair.first, 
pair.second)
                                 + ") has already in brokers.");
                     }
                 }
@@ -274,7 +276,8 @@ public class BrokerMgr {
                     }
                 }
                 if (!found) {
-                    throw new DdlException("Broker(" + pair.first + ":" + 
pair.second + ") has not in brokers.");
+                    throw new DdlException("Broker(" + NetUtils
+                            .getHostPortInAccessibleFormat(pair.first, 
pair.second) + ") has not in brokers.");
                 }
             }
             Env.getCurrentEnv().getEditLog().logDropBroker(new 
ModifyBrokerInfo(name, droppedAddressList));
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index ca6d0ee0986..47ad2ec13e9 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -2639,10 +2639,12 @@ public class Env {
         try {
             Frontend fe = checkFeExist(host, port);
             if (fe == null) {
-                throw new DdlException("frontend does not exist[" + host + ":" 
+ port + "]");
+                throw new DdlException("frontend does not exist[" + NetUtils
+                        .getHostPortInAccessibleFormat(host, port) + "]");
             }
             if (fe.getRole() != role) {
-                throw new DdlException(role.toString() + " does not exist[" + 
host + ":" + port + "]");
+                throw new DdlException(role.toString() + " does not exist[" + 
NetUtils
+                        .getHostPortInAccessibleFormat(host, port) + "]");
             }
             frontends.remove(fe.getNodeName());
             removedFrontends.add(fe.getNodeName());
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/FsBroker.java 
b/fe/fe-core/src/main/java/org/apache/doris/catalog/FsBroker.java
index fd40606dde6..3f40088169e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/FsBroker.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/FsBroker.java
@@ -19,6 +19,7 @@ package org.apache.doris.catalog;
 
 import org.apache.doris.common.io.Text;
 import org.apache.doris.common.io.Writable;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.persist.gson.GsonUtils;
 import org.apache.doris.system.BrokerHbResponse;
 import org.apache.doris.system.HeartbeatResponse.HbStatus;
@@ -123,7 +124,7 @@ public class FsBroker implements Writable, 
Comparable<FsBroker> {
 
     @Override
     public String toString() {
-        return host + ":" + port;
+        return NetUtils.getHostPortInAccessibleFormat(host, port);
     }
 
     public static FsBroker readIn(DataInput in) throws IOException {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TrashProcDir.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TrashProcDir.java
index d77c6cf5cad..18605b37c0e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/TrashProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/TrashProcDir.java
@@ -22,6 +22,7 @@ import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.ClientPool;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.util.DebugUtil;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.system.Backend;
 import org.apache.doris.thrift.BackendService;
 import org.apache.doris.thrift.TNetworkAddress;
@@ -94,7 +95,7 @@ public class TrashProcDir implements ProcDirInterface {
 
             List<String> backendInfo = new ArrayList<>();
             backendInfo.add(String.valueOf(backend.getId()));
-            backendInfo.add(backend.getHost() + ":" + 
backend.getHeartbeatPort());
+            
backendInfo.add(NetUtils.getHostPortInAccessibleFormat(backend.getHost(), 
backend.getHeartbeatPort()));
             if (trashUsedCapacityB != null) {
                 Pair<Double, String> trashUsedCapacity = 
DebugUtil.getByteUint(trashUsedCapacityB);
                 
backendInfo.add(DebugUtil.DECIMAL_FORMAT_SCALE_3.format(trashUsedCapacity.first)
 + " "
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerReader.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerReader.java
index 69183114108..592d9f94d11 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerReader.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerReader.java
@@ -100,7 +100,8 @@ public class BrokerReader {
     }
 
     public TBrokerFD open(String path) throws IOException {
-        String clientId = FrontendOptions.getLocalHostAddress() + ":" + 
Config.rpc_port;
+        String clientId = NetUtils
+                
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.rpc_port);
         TBrokerOpenReaderRequest tOpenReaderRequest = new 
TBrokerOpenReaderRequest(
                 TBrokerVersion.VERSION_ONE, path, 0, clientId, 
brokerDesc.getProperties());
         TBrokerOpenReaderResponse tOpenReaderResponse = null;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerUtil.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerUtil.java
index 0cfaa6b8caf..360a59f63a8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerUtil.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/BrokerUtil.java
@@ -217,7 +217,8 @@ public class BrokerUtil {
             long fileSize = fileStatuses.get(0).getSize();
 
             // open reader
-            String clientId = FrontendOptions.getLocalHostAddress() + ":" + 
Config.rpc_port;
+            String clientId = NetUtils
+                    
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.rpc_port);
             TBrokerOpenReaderRequest tOpenReaderRequest = new 
TBrokerOpenReaderRequest(
                     TBrokerVersion.VERSION_ONE, path, 0, clientId, 
brokerDesc.getProperties());
             TBrokerOpenReaderResponse tOpenReaderResponse = null;
@@ -501,7 +502,8 @@ public class BrokerUtil {
             address = BrokerUtil.getAddress(brokerDesc);
             client = BrokerUtil.borrowClient(address);
             try {
-                String clientId = FrontendOptions.getLocalHostAddress() + ":" 
+ Config.rpc_port;
+                String clientId = NetUtils
+                        
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.rpc_port);
                 TBrokerOpenWriterRequest tOpenWriterRequest = new 
TBrokerOpenWriterRequest(
                         TBrokerVersion.VERSION_ONE, brokerFilePath, 
TBrokerOpenMode.APPEND,
                         clientId, brokerDesc.getProperties());
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/deploy/impl/AmbariDeployManager.java
 
b/fe/fe-core/src/main/java/org/apache/doris/deploy/impl/AmbariDeployManager.java
index e8e21436e65..6d4e7804a5a 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/deploy/impl/AmbariDeployManager.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/deploy/impl/AmbariDeployManager.java
@@ -20,6 +20,7 @@ package org.apache.doris.deploy.impl;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.common.AnalysisException;
 import org.apache.doris.common.Pair;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.Util;
 import org.apache.doris.deploy.DeployManager;
 import org.apache.doris.system.SystemInfoService;
@@ -215,7 +216,8 @@ public class AmbariDeployManager extends DeployManager {
         for (String hostname : hostnames) {
             Pair<String, Integer> hostPort = null;
             try {
-                hostPort = SystemInfoService.validateHostAndPort(hostname + 
":" + port);
+                hostPort = SystemInfoService.validateHostAndPort(NetUtils
+                        .getHostPortInAccessibleFormat(hostname, port));
             } catch (AnalysisException e) {
                 LOG.warn("Invalid host port format: {}:{}", hostname, port, e);
                 continue;
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/fs/operations/BrokerFileOperations.java
 
b/fe/fe-core/src/main/java/org/apache/doris/fs/operations/BrokerFileOperations.java
index 6cfdcec190c..68ec50c18af 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/fs/operations/BrokerFileOperations.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/fs/operations/BrokerFileOperations.java
@@ -20,6 +20,7 @@ package org.apache.doris.fs.operations;
 import org.apache.doris.backup.Status;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.util.BrokerUtil;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.service.FrontendOptions;
 import org.apache.doris.thrift.TBrokerCloseReaderRequest;
 import org.apache.doris.thrift.TBrokerCloseWriterRequest;
@@ -53,7 +54,8 @@ public class BrokerFileOperations implements FileOperations {
     }
 
     public static String clientId() {
-        return FrontendOptions.getLocalHostAddress() + ":" + 
Config.edit_log_port;
+        return NetUtils
+                
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.edit_log_port);
     }
 
     @Override
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
index 4bd2eebf9af..d27310021b5 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/controller/BaseController.java
@@ -23,6 +23,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.AuthenticationException;
 import org.apache.doris.common.Config;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.httpv2.HttpAuthManager;
 import org.apache.doris.httpv2.HttpAuthManager.SessionValue;
 import org.apache.doris.httpv2.exception.UnauthorizedException;
@@ -299,9 +300,11 @@ public class BaseController {
     protected String getCurrentFrontendURL() {
         if (Config.enable_https) {
             // this could be the result of redirection.
-            return "https://"; + FrontendOptions.getLocalHostAddress() + ":" + 
Config.https_port;
+            return "https://"; + NetUtils
+                    
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.https_port);
         } else {
-            return "http://"; + FrontendOptions.getLocalHostAddress() + ":" + 
Config.http_port;
+            return "http://"; + NetUtils
+                    
.getHostPortInAccessibleFormat(FrontendOptions.getLocalHostAddress(), 
Config.http_port);
         }
     }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
index ef660a5e28e..7b4b4dd5498 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/RestBaseController.java
@@ -21,6 +21,7 @@ import org.apache.doris.analysis.UserIdentity;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.cluster.ClusterNamespace;
 import org.apache.doris.common.Config;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.httpv2.controller.BaseController;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
 import org.apache.doris.httpv2.exception.UnauthorizedException;
@@ -200,7 +201,8 @@ public class RestBaseController extends BaseController {
         String uri = request.getRequestURI();
         String query = request.getQueryString();
         query = query == null ? "" : query;
-        String newUrl = "https://"; + serverName + ":" + Config.https_port + 
uri + "?" + query;
+        String newUrl = "https://"; + 
NetUtils.getHostPortInAccessibleFormat(serverName, Config.https_port) + uri + 
"?"
+                + query;
         LOG.info("redirect to new url: {}", newUrl);
         RedirectView redirectView = new RedirectView(newUrl);
         redirectView.setStatusCode(HttpStatus.TEMPORARY_REDIRECT);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
index 0bd83617f12..d377ba2e5f6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/TableQueryPlanAction.java
@@ -28,6 +28,7 @@ import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
 import org.apache.doris.common.DorisHttpException;
 import org.apache.doris.common.MetaNotFoundException;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
 import org.apache.doris.httpv2.rest.manager.HttpUtils;
 import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -287,7 +288,8 @@ public class TableQueryPlanAction extends 
RestBaseController {
             TPaloScanRange scanRange = 
scanRangeLocations.scan_range.palo_scan_range;
             Node tabletRouting = new Node(Long.parseLong(scanRange.version), 0 
/* schema hash is not used */);
             for (TNetworkAddress address : scanRange.hosts) {
-                tabletRouting.addRouting(address.hostname + ":" + 
address.port);
+                tabletRouting.addRouting(NetUtils
+                        .getHostPortInAccessibleFormat(address.hostname, 
address.port));
             }
             result.put(String.valueOf(scanRange.tablet_id), tabletRouting);
         }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/ClusterAction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/ClusterAction.java
index 983bafc8522..f6a09ce34b3 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/ClusterAction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/ClusterAction.java
@@ -19,6 +19,7 @@ package org.apache.doris.httpv2.rest.manager;
 
 import org.apache.doris.catalog.Env;
 import org.apache.doris.common.Config;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
 import org.apache.doris.httpv2.rest.RestBaseController;
 import org.apache.doris.mysql.privilege.PrivPredicate;
@@ -63,8 +64,10 @@ public class ClusterAction extends RestBaseController {
                 .map(Frontend::getHost)
                 .collect(Collectors.toList());
 
-        result.put("mysql", frontends.stream().map(ip -> ip + ":" + 
Config.query_port).collect(Collectors.toList()));
-        result.put("http", frontends.stream().map(ip -> ip + ":" + 
Config.http_port).collect(Collectors.toList()));
+        result.put("mysql", frontends.stream().map(ip -> NetUtils
+                .getHostPortInAccessibleFormat(ip, 
Config.query_port)).collect(Collectors.toList()));
+        result.put("http", frontends.stream().map(ip -> NetUtils
+                .getHostPortInAccessibleFormat(ip, 
Config.http_port)).collect(Collectors.toList()));
         return ResponseEntityBuilder.ok(result);
     }
 }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/NodeAction.java 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/NodeAction.java
index 4818b6497b5..ba444474628 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/NodeAction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/NodeAction.java
@@ -25,6 +25,7 @@ import org.apache.doris.common.Pair;
 import org.apache.doris.common.ThreadPoolManager;
 import org.apache.doris.common.proc.ProcResult;
 import org.apache.doris.common.proc.ProcService;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.PropertyAnalyzer;
 import org.apache.doris.ha.FrontendNodeType;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
@@ -190,7 +191,8 @@ public class NodeAction extends RestBaseController {
             List<Long> beIds = 
Env.getCurrentSystemInfo().getAllBackendIds(true);
             if (!beIds.isEmpty()) {
                 Backend be = 
Env.getCurrentSystemInfo().getBackend(beIds.get(0));
-                String url = "http://"; + be.getHost() + ":" + be.getHttpPort() 
+ "/api/show_config";
+                String url = "http://"; + 
NetUtils.getHostPortInAccessibleFormat(be.getHost(), be.getHttpPort())
+                        + "/api/show_config";
                 String questResult = HttpUtils.doGet(url, null);
                 List<List<String>> configs = 
GsonUtils.GSON.fromJson(questResult, new TypeToken<List<List<String>>>() {
                 }.getType());
@@ -227,14 +229,15 @@ public class NodeAction extends RestBaseController {
     }
 
     private static List<String> getFeList() {
-        return Env.getCurrentEnv().getFrontends(null).stream().map(fe -> 
fe.getHost() + ":" + Config.http_port)
+        return Env.getCurrentEnv().getFrontends(null).stream()
+                .map(fe -> 
NetUtils.getHostPortInAccessibleFormat(fe.getHost(), Config.http_port))
                 .collect(Collectors.toList());
     }
 
     private static List<String> getBeList() {
         return 
Env.getCurrentSystemInfo().getAllBackendIds(false).stream().map(beId -> {
             Backend be = Env.getCurrentSystemInfo().getBackend(beId);
-            return be.getHost() + ":" + be.getHttpPort();
+            return NetUtils.getHostPortInAccessibleFormat(be.getHost(), 
be.getHttpPort());
         }).collect(Collectors.toList());
     }
 
@@ -357,8 +360,9 @@ public class NodeAction extends RestBaseController {
             configInfoTotal.add(Lists.newArrayList());
 
             Pair<String, Integer> hostPort = hostPorts.get(i);
-            configRequestDoneSignal.addMark(hostPort.first + ":" + 
hostPort.second, -1);
-            String url = "http://"; + hostPort.first + ":" + hostPort.second + 
questPath;
+            String address = 
NetUtils.getHostPortInAccessibleFormat(hostPort.first, hostPort.second);
+            configRequestDoneSignal.addMark(address, -1);
+            String url = "http://"; + address + questPath;
             httpExecutor.submit(
                     new HttpConfigInfoTask(url, hostPort, authorization, 
nodeType, confNames, configRequestDoneSignal,
                             configInfoTotal.get(i)));
@@ -433,7 +437,8 @@ public class NodeAction extends RestBaseController {
                         addConfig(conf);
                     }
                 }
-                configRequestDoneSignal.markedCountDown(hostPort.first + ":" + 
hostPort.second, -1);
+                configRequestDoneSignal.markedCountDown(NetUtils
+                        .getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second), -1);
             } catch (Exception e) {
                 LOG.warn("get config from {}:{} failed.", hostPort.first, 
hostPort.second, e);
                 configRequestDoneSignal.countDown();
@@ -441,7 +446,8 @@ public class NodeAction extends RestBaseController {
         }
 
         private void addConfig(List<String> conf) {
-            conf.add(1, hostPort.first + ":" + hostPort.second);
+            conf.add(1, NetUtils
+                    .getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second));
             conf.add(2, nodeType);
             config.add(conf);
         }
@@ -518,7 +524,8 @@ public class NodeAction extends RestBaseController {
             List<Map<String, String>> failedTotal) {
         for (Map.Entry<String, String> entry : configs.entrySet()) {
             Map<String, String> failed = Maps.newHashMap();
-            addFailedConfig(entry.getKey(), entry.getValue(), hostPort.first + 
":" + hostPort.second, err, failed);
+            addFailedConfig(entry.getKey(), entry.getValue(), NetUtils
+                    .getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second), err, failed);
             failedTotal.add(failed);
         }
     }
@@ -534,7 +541,8 @@ public class NodeAction extends RestBaseController {
         for (SetConfigAction.ErrConfig errConfig : 
setConfigEntity.getErrConfigs()) {
             Map<String, String> failed = Maps.newHashMap();
             addFailedConfig(errConfig.getConfigName(), 
errConfig.getConfigValue(),
-                    hostPort.first + ":" + hostPort.second, 
errConfig.getErrInfo(), failed);
+                    NetUtils.getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second), errConfig.getErrInfo(),
+                    failed);
             failedTotal.add(failed);
         }
     }
@@ -800,7 +808,8 @@ public class NodeAction extends RestBaseController {
     }
 
     private String concatNodeConfig(String host, Integer port, String 
configName, String configValue) {
-        return host + ":" + port + ":" + configName + ":" + configValue;
+        return NetUtils
+                .getHostPortInAccessibleFormat(host, port) + ":" + configName 
+ ":" + configValue;
     }
 
     private Map<String, String> parseNodeConfig(String nodeConfig) {
@@ -841,13 +850,15 @@ public class NodeAction extends RestBaseController {
                 JsonObject jsonObject = 
JsonParser.parseString(response).getAsJsonObject();
                 String status = jsonObject.get("status").getAsString();
                 if (!status.equals("OK")) {
-                    addFailedConfig(configName, configValue, hostPort.first + 
":" + hostPort.second,
+                    addFailedConfig(configName, configValue, NetUtils
+                            .getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second),
                             jsonObject.get("msg").getAsString(), failed);
                 }
                 beSetConfigDoneSignal.markedCountDown(
                         concatNodeConfig(hostPort.first, hostPort.second, 
configName, configValue), -1);
             } catch (Exception e) {
-                LOG.warn("set be:{} config:{} failed.", hostPort.first + ":" + 
hostPort.second,
+                LOG.warn("set be:{} config:{} failed.", NetUtils
+                        .getHostPortInAccessibleFormat(hostPort.first, 
hostPort.second),
                         configName + "=" + configValue, e);
                 beSetConfigDoneSignal.countDown();
             }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/QueryProfileAction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/QueryProfileAction.java
index 524f6a57f89..8ad35da2dfa 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/QueryProfileAction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/httpv2/rest/manager/QueryProfileAction.java
@@ -26,6 +26,7 @@ import 
org.apache.doris.common.proc.CurrentQueryStatementsProcNode;
 import org.apache.doris.common.proc.ProcResult;
 import org.apache.doris.common.profile.ProfileTreeNode;
 import org.apache.doris.common.profile.ProfileTreePrinter;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.ProfileManager;
 import org.apache.doris.common.util.ProfileManager.ProfileElement;
 import org.apache.doris.httpv2.entity.ResponseEntityBuilder;
@@ -177,7 +178,8 @@ public class QueryProfileAction extends RestBaseController {
 
         // add node information
         for (List<String> query : queries) {
-            query.add(1, Env.getCurrentEnv().getSelfNode().getHost() + ":" + 
Config.http_port);
+            query.add(1, 
NetUtils.getHostPortInAccessibleFormat(Env.getCurrentEnv().getSelfNode().getHost(),
+                    Config.http_port));
         }
 
         if (!Strings.isNullOrEmpty(search)) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java 
b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java
index dd574ab4d6e..70a22970b13 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBJEJournal.java
@@ -20,6 +20,7 @@ package org.apache.doris.journal.bdbje;
 import org.apache.doris.catalog.Env;
 import org.apache.doris.common.io.DataOutputBuffer;
 import org.apache.doris.common.io.Writable;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.Util;
 import org.apache.doris.journal.Journal;
 import org.apache.doris.journal.JournalCursor;
@@ -87,7 +88,7 @@ public class BDBJEJournal implements Journal { // CHECKSTYLE 
IGNORE THIS LINE: B
         // so that we do not need to update bdbje when the IP changes.
         // WARNING:However, it is necessary to ensure that the hostname of the 
node
         // can be resolved and accessed by other nodes.
-        selfNodeHostPort = selfNode.getHost() + ":" + selfNode.getPort();
+        selfNodeHostPort = 
NetUtils.getHostPortInAccessibleFormat(selfNode.getHost(), selfNode.getPort());
     }
 
     /*
@@ -327,7 +328,7 @@ public class BDBJEJournal implements Journal { // 
CHECKSTYLE IGNORE THIS LINE: B
             bdbEnvironment = new BDBEnvironment();
 
             HostInfo helperNode = Env.getServingEnv().getHelperNode();
-            String helperHostPort = helperNode.getHost() + ":" + 
helperNode.getPort();
+            String helperHostPort = 
NetUtils.getHostPortInAccessibleFormat(helperNode.getHost(), 
helperNode.getPort());
             try {
                 bdbEnvironment.setup(dbEnv, selfNodeName, selfNodeHostPort, 
helperHostPort,
                         Env.getServingEnv().isElectable());
@@ -411,7 +412,8 @@ public class BDBJEJournal implements Journal { // 
CHECKSTYLE IGNORE THIS LINE: B
 
         bdbEnvironment.close();
         bdbEnvironment.setup(new File(environmentPath), selfNodeName, 
selfNodeHostPort,
-                helperNode.getHost() + ":" + helperNode.getPort(), 
Env.getServingEnv().isElectable());
+                NetUtils.getHostPortInAccessibleFormat(helperNode.getHost(), 
helperNode.getPort()),
+                Env.getServingEnv().isElectable());
     }
 
     @Override
diff --git a/fe/fe-core/src/main/java/org/apache/doris/ldap/LdapClient.java 
b/fe/fe-core/src/main/java/org/apache/doris/ldap/LdapClient.java
index 427d2ece8ea..02894eaffd1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/ldap/LdapClient.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/ldap/LdapClient.java
@@ -21,6 +21,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.common.ErrorCode;
 import org.apache.doris.common.ErrorReport;
 import org.apache.doris.common.LdapConfig;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.SymmetricEncryption;
 import org.apache.doris.persist.LdapInfo;
 
@@ -63,7 +64,8 @@ public class LdapClient {
 
         private void setLdapTemplateNoPool(String ldapPassword) {
             LdapContextSource contextSource = new LdapContextSource();
-            String url = "ldap://"; + LdapConfig.ldap_host + ":" + 
LdapConfig.ldap_port;
+            String url = "ldap://"; + NetUtils
+                    .getHostPortInAccessibleFormat(LdapConfig.ldap_host, 
LdapConfig.ldap_port);
 
             contextSource.setUrl(url);
             contextSource.setUserDn(LdapConfig.ldap_admin_name);
@@ -74,7 +76,8 @@ public class LdapClient {
 
         private void setLdapTemplatePool(String ldapPassword) {
             LdapContextSource contextSource = new LdapContextSource();
-            String url = "ldap://"; + LdapConfig.ldap_host + ":" + 
LdapConfig.ldap_port;
+            String url = "ldap://"; + NetUtils
+                    .getHostPortInAccessibleFormat(LdapConfig.ldap_host, 
LdapConfig.ldap_port);
 
             contextSource.setUrl(url);
             contextSource.setUserDn(LdapConfig.ldap_admin_name);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
index 244d0be6476..5e48d31bb44 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/master/ReportHandler.java
@@ -42,6 +42,7 @@ import org.apache.doris.common.Config;
 import org.apache.doris.common.MetaNotFoundException;
 import org.apache.doris.common.Pair;
 import org.apache.doris.common.util.Daemon;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.TimeUtils;
 import org.apache.doris.cooldown.CooldownConf;
 import org.apache.doris.metric.GaugeMetric;
@@ -142,7 +143,8 @@ public class ReportHandler extends Daemon {
         if (backend == null) {
             tStatus.setStatusCode(TStatusCode.INTERNAL_ERROR);
             List<String> errorMsgs = Lists.newArrayList();
-            errorMsgs.add("backend[" + host + ":" + bePort + "] does not 
exist.");
+            errorMsgs.add("backend[" + NetUtils
+                    .getHostPortInAccessibleFormat(host, bePort) + "] does not 
exist.");
             tStatus.setErrorMsgs(errorMsgs);
             return result;
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java 
b/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
index c9ceb2c3702..dfd772f5fd2 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/metric/MetricRepo.java
@@ -24,6 +24,7 @@ import org.apache.doris.catalog.Env;
 import org.apache.doris.catalog.TabletInvertedIndex;
 import org.apache.doris.common.Config;
 import org.apache.doris.common.ThreadPoolManager;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.load.EtlJobType;
 import org.apache.doris.load.loadv2.JobState;
 import org.apache.doris.load.loadv2.LoadManager;
@@ -619,7 +620,8 @@ public final class MetricRepo {
                     return (long) invertedIndex.getTabletNumByBackendId(beId);
                 }
             };
-            tabletNum.addLabel(new MetricLabel("backend", be.getHost() + ":" + 
be.getHeartbeatPort()));
+            tabletNum.addLabel(new MetricLabel("backend",
+                    NetUtils.getHostPortInAccessibleFormat(be.getHost(), 
be.getHeartbeatPort())));
             DORIS_METRIC_REGISTER.addMetrics(tabletNum);
 
             // max compaction score of tablets on each backends
@@ -633,7 +635,8 @@ public final class MetricRepo {
                     return be.getTabletMaxCompactionScore();
                 }
             };
-            tabletMaxCompactionScore.addLabel(new MetricLabel("backend", 
be.getHost() + ":" + be.getHeartbeatPort()));
+            tabletMaxCompactionScore.addLabel(new MetricLabel("backend",
+                    NetUtils.getHostPortInAccessibleFormat(be.getHost(), 
be.getHeartbeatPort())));
             DORIS_METRIC_REGISTER.addMetrics(tabletMaxCompactionScore);
 
         } // end for backends
diff --git a/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlChannel.java 
b/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlChannel.java
index 0d24314204b..5eaee47fa4b 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlChannel.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/mysql/MysqlChannel.java
@@ -17,6 +17,7 @@
 
 package org.apache.doris.mysql;
 
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.qe.ConnectProcessor;
 
@@ -99,7 +100,8 @@ public class MysqlChannel {
         this.conn = connection;
         if (connection.getPeerAddress() instanceof InetSocketAddress) {
             InetSocketAddress address = (InetSocketAddress) 
connection.getPeerAddress();
-            remoteHostPortString = address.getHostString() + ":" + 
address.getPort();
+            remoteHostPortString = NetUtils
+                    .getHostPortInAccessibleFormat(address.getHostString(), 
address.getPort());
             remoteIp = address.getAddress().getHostAddress();
         } else {
             // Reach here, what's it?
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
index 5eb2e4187dd..d7adcf85ca7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ShowExecutor.java
@@ -170,6 +170,7 @@ import org.apache.doris.common.profile.ProfileTreePrinter;
 import org.apache.doris.common.util.ListComparator;
 import org.apache.doris.common.util.LogBuilder;
 import org.apache.doris.common.util.LogKey;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.OrderByPair;
 import org.apache.doris.common.util.PrintableMap;
 import org.apache.doris.common.util.ProfileManager;
@@ -1385,10 +1386,11 @@ public class ShowExecutor {
         SystemInfoService infoService = Env.getCurrentSystemInfo();
         Backend be = infoService.getBackendWithHttpPort(host, port);
         if (be == null) {
-            throw new AnalysisException(host + ":" + port + " is not a valid 
backend");
+            throw new 
AnalysisException(NetUtils.getHostPortInAccessibleFormat(host, port) + " is not 
a valid backend");
         }
         if (!be.isAlive()) {
-            throw new AnalysisException("Backend " + host + ":" + port + " is 
not alive");
+            throw new AnalysisException(
+                    "Backend " + NetUtils.getHostPortInAccessibleFormat(host, 
port) + " is not alive");
         }
 
         if (!url.getPath().equals("/api/_load_error_log")) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java 
b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
index 5cc6b36f87d..050e1cf94f7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/system/SystemInfoService.java
@@ -231,7 +231,8 @@ public class SystemInfoService {
         for (HostInfo hostInfo : hostInfos) {
             // check is already exist
             if (getBackendWithHeartbeatPort(hostInfo.getHost(), 
hostInfo.getPort()) == null) {
-                String backendIdentifier = hostInfo.getHost() + ":" + 
hostInfo.getPort();
+                String backendIdentifier = NetUtils
+                        .getHostPortInAccessibleFormat(hostInfo.getHost(), 
hostInfo.getPort());
                 throw new DdlException("backend does not exists[" + 
backendIdentifier + "]");
             }
         }
@@ -253,8 +254,8 @@ public class SystemInfoService {
     public void dropBackend(String host, int heartbeatPort) throws 
DdlException {
         Backend droppedBackend = getBackendWithHeartbeatPort(host, 
heartbeatPort);
         if (droppedBackend == null) {
-            throw new DdlException("backend does not exists[" + host
-                    + ":" + heartbeatPort + "]");
+            throw new DdlException("backend does not exists[" + NetUtils
+                    .getHostPortInAccessibleFormat(host, heartbeatPort) + "]");
         }
         // update idToBackend
         Map<Long, Backend> copiedBackends = Maps.newHashMap(idToBackendRef);
@@ -880,7 +881,8 @@ public class SystemInfoService {
     public void modifyBackendHost(ModifyBackendHostNameClause clause) throws 
UserException {
         Backend be = getBackendWithHeartbeatPort(clause.getHost(), 
clause.getPort());
         if (be == null) {
-            throw new DdlException("backend does not exists[" + 
clause.getHost() + ":" + clause.getPort() + "]");
+            throw new DdlException("backend does not exists[" + NetUtils
+                    .getHostPortInAccessibleFormat(clause.getHost(), 
clause.getPort()) + "]");
         }
         if (be.getHost().equals(clause.getNewHost())) {
             // no need to modify
@@ -897,7 +899,8 @@ public class SystemInfoService {
             Backend be = getBackendWithHeartbeatPort(hostInfo.getHost(), 
hostInfo.getPort());
             if (be == null) {
                 throw new DdlException(
-                        "backend does not exists[" + hostInfo.getHost() + ":" 
+ hostInfo.getPort() + "]");
+                        "backend does not exists[" + NetUtils
+                                
.getHostPortInAccessibleFormat(hostInfo.getHost(), hostInfo.getPort()) + "]");
             }
             backends.add(be);
         }
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/ExternalFileTableValuedFunction.java
 
b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/ExternalFileTableValuedFunction.java
index 8fddb508466..1e89fd41a5d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/tablefunction/ExternalFileTableValuedFunction.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/tablefunction/ExternalFileTableValuedFunction.java
@@ -37,6 +37,7 @@ import org.apache.doris.common.UserException;
 import org.apache.doris.common.util.BrokerUtil;
 import org.apache.doris.common.util.FileFormatConstants;
 import org.apache.doris.common.util.FileFormatUtils;
+import org.apache.doris.common.util.NetUtils;
 import org.apache.doris.common.util.Util;
 import org.apache.doris.planner.PlanNodeId;
 import org.apache.doris.planner.ScanNode;
@@ -326,7 +327,8 @@ public abstract class ExternalFileTableValuedFunction 
extends TableValuedFunctio
                     errMsg = result.getStatus().getErrorMsgsList().get(0);
                 } else {
                     errMsg = "fetchTableStructureAsync failed. backend 
address: "
-                            + address.getHostname() + ":" + address.getPort();
+                            + NetUtils
+                            
.getHostPortInAccessibleFormat(address.getHostname(), address.getPort());
                 }
                 throw new AnalysisException(errMsg);
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org


Reply via email to