From 9735c3749eae8f87a884cbcd13cad0f288afa963 Mon Sep 17 00:00:00 2001 From: shuwenwei Date: Mon, 13 Jul 2026 17:36:04 +0800 Subject: [PATCH 1/2] Remove incorrect timeout reassignment after query planning The context.setTimeOut() call in QueryExecution.start() mutated timeOut from the total timeout duration to the remaining time after planning. However, all consumers (checkTimeOutForQuery, cleanUpStaleQueries, timeout exception messages) assume timeOut holds the total duration. This caused stale query cleanup to trigger earlier than expected and incorrect deadline values in timeout error messages. --- .../iotdb/db/queryengine/plan/execution/QueryExecution.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java index 5af143bfca83f..918538b06d2dc 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/QueryExecution.java @@ -176,10 +176,6 @@ public void start() { doLogicalPlan(); doDistributedPlan(); - // update timeout after finishing plan stage - context.setTimeOut( - context.getTimeOut() - (System.currentTimeMillis() - context.getStartTime())); - stateMachine.transitionToPlanned(); if (context.getQueryType() == QueryType.READ) { initResultHandle(); From 65963aa7f613044c52bbb40741c9f16a288cfe4d Mon Sep 17 00:00:00 2001 From: shuwenwei Date: Wed, 22 Jul 2026 16:56:49 +0800 Subject: [PATCH 2/2] add javadoc --- .../apache/iotdb/db/queryengine/common/MPPQueryContext.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java index 13773c150906c..cc9ad82d01aa5 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java @@ -189,7 +189,10 @@ public QueryType getQueryType() { return queryType; } - /** the max executing time of query in ms. Unit: millisecond */ + /** + * Returns the total query timeout in milliseconds, measured from {@link #getStartTime()}. This + * value never represents the remaining timeout. + */ public long getTimeOut() { return timeOut; }