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

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


The following commit(s) were added to refs/heads/branch-4.1 by this push:
     new 9b192334d89 branch-4.1: [fix](process list) return unexpected result 
in FULL mode #64631 (#64983)
9b192334d89 is described below

commit 9b192334d894fcc56b245e35e3fcd277b2a59fcd
Author: morrySnow <[email protected]>
AuthorDate: Tue Jun 30 16:09:19 2026 +0800

    branch-4.1: [fix](process list) return unexpected result in FULL mode 
#64631 (#64983)
    
    picked from master #64631
---
 .../apache/doris/common/proc/FrontendsProcNode.java  | 20 ++++++++++----------
 .../java/org/apache/doris/qe/ConnectPoolMgr.java     |  2 +-
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
index f83a49bf8bf..27723196728 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/common/proc/FrontendsProcNode.java
@@ -79,14 +79,10 @@ public class FrontendsProcNode implements ProcNodeInterface 
{
         List<Pair<String, Integer>> allFe = new ArrayList<>();
         List<Frontend> frontends = env.getFrontends(null);
 
-        String selfNode = Env.getCurrentEnv().getSelfNode().getHost();
-        if (ConnectContext.get() != null && 
!Strings.isNullOrEmpty(ConnectContext.get().getCurrentConnectedFEIp())) {
-            selfNode = ConnectContext.get().getCurrentConnectedFEIp();
-        }
+        String selfNodeName = env.getNodeName();
 
-        String finalSelfNode = selfNode;
         frontends.stream()
-            .filter(fe -> (!fe.getHost().equals(finalSelfNode) || includeSelf))
+            .filter(fe -> (!fe.getNodeName().equals(selfNodeName) || 
includeSelf))
             .map(fe -> Pair.of(fe.getHost(), fe.getRpcPort()))
                 .forEach(allFe::add);
         return allFe;
@@ -129,7 +125,7 @@ public class FrontendsProcNode implements ProcNodeInterface 
{
             info.add(Integer.toString(fe.getEditLogPort()));
             info.add(Integer.toString(Config.http_port));
 
-            if (fe.getHost().equals(env.getSelfNode().getHost())) {
+            if (fe.getNodeName().equals(env.getNodeName())) {
                 info.add(Integer.toString(Config.query_port));
                 info.add(Integer.toString(Config.rpc_port));
                 info.add(Integer.toString(Config.arrow_flight_sql_port));
@@ -143,12 +139,16 @@ public class FrontendsProcNode implements 
ProcNodeInterface {
             InetSocketAddress socketAddress = new 
InetSocketAddress(fe.getHost(), fe.getEditLogPort());
             //An ipv6 address may have different format, so we compare 
InetSocketAddress objects instead of IP Strings.
             //e.g.  fdbd:ff1:ce00:1c26::d8 and fdbd:ff1:ce00:1c26:0:0:d8
-            info.add(String.valueOf(socketAddress.equals(master)));
+            boolean isMaster = socketAddress.equals(master);
+            if (!isMaster && master == null && 
fe.getNodeName().equals(env.getNodeName()) && env.isMaster()) {
+                isMaster = true;
+            }
+            info.add(String.valueOf(isMaster));
 
             info.add(Integer.toString(env.getClusterId()));
             info.add(String.valueOf(isJoin(allFe, fe)));
 
-            if (fe.getHost().equals(env.getSelfNode().getHost())) {
+            if (fe.getNodeName().equals(env.getNodeName())) {
                 info.add("true");
                 info.add(Long.toString(env.getEditLog().getMaxJournalId()));
             } else {
@@ -170,7 +170,7 @@ public class FrontendsProcNode implements ProcNodeInterface 
{
 
     public static Frontend getCurrentFrontendVersion(Env env) {
         for (Frontend fe : env.getFrontends(null /* all */)) {
-            if (fe.getHost().equals(env.getSelfNode().getHost())) {
+            if (fe.getNodeName().equals(env.getNodeName())) {
                 return fe;
             }
         }
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectPoolMgr.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectPoolMgr.java
index e0f311aec85..b64bcdd9284 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectPoolMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectPoolMgr.java
@@ -141,7 +141,7 @@ public class ConnectPoolMgr {
         for (ConnectContext ctx : connectionMap.values()) {
             // Check auth
             if (!ctx.getCurrentUserIdentity().equals(userIdentity) && 
!Env.getCurrentEnv().getAccessManager()
-                    .checkGlobalPriv(userIdentity, PrivPredicate.GRANT)) {
+                    .checkGlobalPriv(userIdentity, PrivPredicate.ADMIN)) {
                 continue;
             }
             list.add(ctx.toThreadInfo(isShowFullSql).toRow(-1, nowMs, 
timeZone));


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

Reply via email to