This is an automated email from the ASF dual-hosted git repository. morrysnow 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 d8da2987a0f [fix](nereids) fix This stopwatch is already running (#37095) d8da2987a0f is described below commit d8da2987a0fb3306d67d5a5dea41fa96d424360e Author: meiyi <myime...@gmail.com> AuthorDate: Tue Jul 2 10:01:27 2024 +0800 [fix](nereids) fix This stopwatch is already running (#37095) If plan throws exception, the stop watch is not stopped, and when execute next sql will get exception: 2024-07-01 19:05:01,679 WARN (mysql-nio-pool-21|660) [StmtExecutor.execute():601] Analyze failed. stmt[10651860, 6cea9e53220940ee-b324d18af20d9ab7] org.apache.doris.common.NereidsException: errCode = 2, detailMessage = This stopwatch is already running. at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:755) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:584) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.nereids.trees.plans.commands.ExecuteCommand.run(ExecuteCommand.java:82) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:727) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:584) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:537) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.MysqlConnectProcessor.handleExecute(MysqlConnectProcessor.java:201) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.MysqlConnectProcessor.handleExecute(MysqlConnectProcessor.java:246) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:291) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:342) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.mysql.ReadListener.lambda$handleEvent$0(ReadListener.java:52) ~[doris-fe.jar:1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?] at java.lang.Thread.run(Thread.java:833) ~[?:?] Caused by: org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = This stopwatch is already running. ... 15 more Caused by: java.lang.IllegalStateException: This stopwatch is already running. at com.google.common.base.Preconditions.checkState(Preconditions.java:512) ~[guava-32.1.2-jre.jar:?] at com.google.common.base.Stopwatch.start(Stopwatch.java:166) ~[guava-32.1.2-jre.jar:?] at org.apache.doris.nereids.NereidsPlanner.plan(NereidsPlanner.java:140) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.initPlan(InsertIntoTableCommand .java:155) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.runInternal(InsertIntoTableComm and.java:226) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.nereids.trees.plans.commands.insert.InsertIntoTableCommand.run(InsertIntoTableCommand.java :105) ~[doris-fe.jar:1.2-SNAPSHOT] at org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:727) ~[doris-fe.jar:1.2-SNAPSHOT] ... 14 more --- .../src/main/java/org/apache/doris/nereids/NereidsPlanner.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java index e0d6f2f7589..97377c7ba26 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java @@ -138,9 +138,13 @@ public class NereidsPlanner extends Planner { PhysicalProperties requireProperties = buildInitRequireProperties(); statementContext.getStopwatch().start(); - boolean showPlanProcess = showPlanProcess(queryStmt.getExplainOptions()); - Plan resultPlan = plan(parsedPlan, requireProperties, explainLevel, showPlanProcess); - statementContext.getStopwatch().stop(); + Plan resultPlan = null; + try { + boolean showPlanProcess = showPlanProcess(queryStmt.getExplainOptions()); + resultPlan = plan(parsedPlan, requireProperties, explainLevel, showPlanProcess); + } finally { + statementContext.getStopwatch().stop(); + } setOptimizedPlan(resultPlan); if (resultPlan instanceof PhysicalPlan) { --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org