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]