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

huajianlan 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 2eae8bb2de5 [fix](Nereids) fix QueryProcessor cannot be cast to class 
LoadProcessor (#43763)
2eae8bb2de5 is described below

commit 2eae8bb2de5625415374638c15d444d5a3d6e1cf
Author: 924060929 <lanhuaj...@selectdb.com>
AuthorDate: Tue Nov 12 21:05:11 2024 +0800

    [fix](Nereids) fix QueryProcessor cannot be cast to class LoadProcessor 
(#43763)
    
    fix QueryProcessor cannot be cast to class LoadProcessor, introduced by
    #41730
    
    Problem Summary:
    
    sql: any select statement
    
    it only meet when open debug log, so I can not write a test
    ```
    2024-11-12 08:15:52,266 WARN (mysql-nio-pool-0|206) 
[ConnectProcessor.handleQueryException():480] Process one query failed because 
unknown reason:
    java.lang.ClassCastException: class 
org.apache.doris.qe.runtime.QueryProcessor cannot be cast to class 
org.apache.doris.qe.runtime.LoadProcessor 
(org.apache.doris.qe.runtime.QueryProcessor and 
org.apache.doris.qe.runtime.LoadProcessor are in unnamed module of loader 'app')
            at 
org.apache.doris.qe.CoordinatorContext.asLoadProcessor(CoordinatorContext.java:262)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.NereidsCoordinator.getJobId(NereidsCoordinator.java:202) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.QeProcessorImpl.registerQuery(QeProcessorImpl.java:116) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.StmtExecutor.executeAndSendResult(StmtExecutor.java:1925) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.StmtExecutor.handleQueryStmt(StmtExecutor.java:1897) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.StmtExecutor.handleQueryWithRetry(StmtExecutor.java:901) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.StmtExecutor.executeByNereids(StmtExecutor.java:833) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:605) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.StmtExecutor.queryRetry(StmtExecutor.java:568) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at org.apache.doris.qe.StmtExecutor.execute(StmtExecutor.java:558) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.ConnectProcessor.executeQuery(ConnectProcessor.java:340) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.ConnectProcessor.handleQuery(ConnectProcessor.java:243) 
~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.MysqlConnectProcessor.handleQuery(MysqlConnectProcessor.java:209)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.MysqlConnectProcessor.dispatch(MysqlConnectProcessor.java:237)
 ~[doris-fe.jar:1.2-SNAPSHOT]
            at 
org.apache.doris.qe.MysqlConnectProcessor.processOnce(MysqlConnectProcessor.java:414)
 ~[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:840) ~[?:?]
    ```
---
 .../src/main/java/org/apache/doris/qe/NereidsCoordinator.java       | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/qe/NereidsCoordinator.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/NereidsCoordinator.java
index a14aea25463..d718089fcab 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/NereidsCoordinator.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/NereidsCoordinator.java
@@ -199,7 +199,11 @@ public class NereidsCoordinator extends Coordinator {
 
     @Override
     public long getJobId() {
-        return coordinatorContext.asLoadProcessor().jobId;
+        JobProcessor jobProcessor = coordinatorContext.getJobProcessor();
+        if (jobProcessor instanceof LoadProcessor) {
+            return ((LoadProcessor) jobProcessor).jobId;
+        }
+        return -1L;
     }
 
     /*


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to