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

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


The following commit(s) were added to refs/heads/branch-4.0 by this push:
     new 24d91851360 branch-4.0: [fix](query) avoid missing result packet for 
query during master switch #62721 (#62773)
24d91851360 is described below

commit 24d91851360c356aae093acf018ab0e454bc5e28
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri Jun 26 09:56:11 2026 +0800

    branch-4.0: [fix](query) avoid missing result packet for query during 
master switch #62721 (#62773)
    
    Cherry-picked from #62721
    
    Co-authored-by: HonestManXin <[email protected]>
---
 .../src/main/java/org/apache/doris/qe/AuditLogHelper.java      |  2 +-
 .../src/main/java/org/apache/doris/qe/ConnectProcessor.java    |  5 ++---
 fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java | 10 ++++++++++
 3 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
index 1d853569289..9174afc2fcc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java
@@ -345,7 +345,7 @@ public class AuditLogHelper {
         auditEventBuilder.setStmt(handleStmt(encryptSql, parsedStmt));
 
         if (!Env.getCurrentEnv().isMaster()) {
-            if (ctx.executor != null && ctx.executor.isForwardToMaster()) {
+            if (ctx.executor != null && ctx.executor.hasForwardedToMaster()) {
                 auditEventBuilder.setState(ctx.executor.getProxyStatus());
                 int proxyStatusCode = ctx.executor.getProxyStatusCode();
                 if (proxyStatusCode != 0) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
index dd2034d416d..4ce7ba26c08 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java
@@ -348,7 +348,7 @@ public abstract class ConnectProcessor {
                             true);
                     // execute failed, skip remaining stmts
                     if (ctx.getState().getStateType() == MysqlStateType.ERR || 
(!Env.getCurrentEnv().isMaster()
-                            && ctx.executor != null && 
ctx.executor.isForwardToMaster()
+                            && ctx.executor != null && 
ctx.executor.hasForwardedToMaster()
                             && ctx.executor.getProxyStatusCode() != 0)) {
                         break;
                     }
@@ -596,7 +596,7 @@ public abstract class ConnectProcessor {
         LOG.debug("Finalize command for query {}", 
DebugUtil.printId(ctx.queryId));
         Preconditions.checkState(connectType.equals(ConnectType.MYSQL));
         ByteBuffer packet;
-        if (executor != null && executor.isForwardToMaster()
+        if (executor != null && executor.hasForwardedToMaster()
                 && ctx.getState().getStateType() != 
QueryState.MysqlStateType.ERR) {
             ShowResultSet resultSet = executor.getShowResultSet();
             if (resultSet == null) {
@@ -808,4 +808,3 @@ public abstract class ConnectProcessor {
         throw new NotSupportedException("Just MysqlConnectProcessor support 
execute");
     }
 }
-
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index c3de95b08d2..c5c5ecef9e9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -405,6 +405,16 @@ public class StmtExecutor {
         }
     }
 
+    /**
+     * Whether this executor has actually forwarded to master and created a 
{@link MasterOpExecutor}.
+     *
+     * <p>Do not confuse with {@link #isForwardToMaster()} which is a decision 
(may be re-evaluated)
+     * based on current statement shape / redirect status.
+     */
+    public boolean hasForwardedToMaster() {
+        return masterOpExecutor != null;
+    }
+
     public ShowResultSet getProxyShowResultSet() {
         return proxyShowResultSet;
     }


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

Reply via email to