This is an automated email from the ASF dual-hosted git repository.
gavinchou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new a53679b4dce [fix](load) fix empty statistics for forwarded INSERT
(#64439)
a53679b4dce is described below
commit a53679b4dce4ce7b100db6e994004cb7f5d62fa0
Author: hui lai <[email protected]>
AuthorDate: Fri Jun 12 15:32:22 2026 +0800
[fix](load) fix empty statistics for forwarded INSERT (#64439)
### What problem does this PR solve?
When `INSERT INTO ... SELECT` is forwarded from a follower FE to the
master FE, `SHOW LOAD` could show an empty `JobDetails`, such as
`ScannedRows=0`, `LoadBytes=0`, `TaskNumber=0`, and empty backend lists.
The root cause is that the insert load job is registered with a real
`jobId`, but when coordinator creation falls back to the regular
`Coordinator` / `CloudCoordinator` path, that `jobId` was not passed
into the coordinator. Therefore, the coordinator kept the default
`jobId=-1` and did not initialize or update the corresponding
`LoadManager` progress. The load job was still recorded as `FINISHED`,
but its `LoadStatistic` remained empty when `SHOW LOAD` rendered
`JobDetails`.
This PR preserves the insert `jobId` in the regular `Coordinator` and
`CloudCoordinator` fallback paths, so `initJobProgress()` and
`updateJobProgress()` update the same `InsertLoadJob` that is later
recorded and displayed by `SHOW LOAD`.
---
fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java | 2 +-
.../main/java/org/apache/doris/cloud/catalog/CloudEnvFactory.java | 2 +-
.../src/main/java/org/apache/doris/cloud/qe/CloudCoordinator.java | 5 +++++
fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java | 6 ++++++
4 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
index 3ecdb6ddef3..8a4e0dcb331 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/EnvFactory.java
@@ -156,7 +156,7 @@ public class EnvFactory {
if (planner instanceof NereidsPlanner &&
SessionVariable.canUseNereidsDistributePlanner(context)) {
return new NereidsCoordinator(context, (NereidsPlanner) planner,
statsErrorEstimator, jobId);
}
- return new Coordinator(context, planner, statsErrorEstimator);
+ return new Coordinator(context, planner, statsErrorEstimator, jobId);
}
// Used for broker load task/export task/update coordinator
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudEnvFactory.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudEnvFactory.java
index 5b240dcd8ef..437c1cc0ba2 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudEnvFactory.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/cloud/catalog/CloudEnvFactory.java
@@ -170,7 +170,7 @@ public class CloudEnvFactory extends EnvFactory {
if (planner instanceof NereidsPlanner &&
SessionVariable.canUseNereidsDistributePlanner()) {
return new NereidsCoordinator(context, (NereidsPlanner) planner,
statsErrorEstimator, jobId);
}
- return new CloudCoordinator(context, planner, statsErrorEstimator);
+ return new CloudCoordinator(context, planner, statsErrorEstimator,
jobId);
}
@Override
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/cloud/qe/CloudCoordinator.java
b/fe/fe-core/src/main/java/org/apache/doris/cloud/qe/CloudCoordinator.java
index 92b3ff4c0ac..39eb6d36ede 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/cloud/qe/CloudCoordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/cloud/qe/CloudCoordinator.java
@@ -45,6 +45,11 @@ public class CloudCoordinator extends Coordinator {
super(context, planner, statsErrorEstimator);
}
+ public CloudCoordinator(ConnectContext context,
+ Planner planner, StatsErrorEstimator
statsErrorEstimator, long jobId) {
+ super(context, planner, statsErrorEstimator, jobId);
+ }
+
public CloudCoordinator(Long jobId, TUniqueId queryId, DescriptorTable
descTable, List<PlanFragment> fragments,
List<ScanNode> scanNodes, String timezone, boolean
loadZeroTolerance,
boolean enbaleProfile) {
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
index b8bdc51f371..b9b12a1abd1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/Coordinator.java
@@ -333,6 +333,12 @@ public class Coordinator implements CoordInterface {
this.statsErrorEstimator = statsErrorEstimator;
}
+ public Coordinator(ConnectContext context, Planner planner,
+ StatsErrorEstimator statsErrorEstimator, long jobId) {
+ this(context, planner, statsErrorEstimator);
+ this.jobId = jobId;
+ }
+
// Used for query/insert/test
public Coordinator(ConnectContext context, Planner planner) {
this.context = context;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]