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

kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git

commit e911ccc4afe3a629df083d42794e7911c78f3dce
Author: meiyi <myime...@gmail.com>
AuthorDate: Sun Sep 3 10:57:38 2023 +0800

    [fix](load) fix cancel load failed because Job could not be cancelled when 
job is finished or cancelled (#17730)
---
 .../src/main/java/org/apache/doris/load/loadv2/LoadManager.java    | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
index 278e23bba5..73d4d1a57a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
@@ -270,13 +270,14 @@ public class LoadManager implements Writable {
     public void cancelLoadJob(CancelLoadStmt stmt) throws DdlException, 
AnalysisException {
         Database db = 
Env.getCurrentInternalCatalog().getDbOrDdlException(stmt.getDbName());
         // List of load jobs waiting to be cancelled
-        List<LoadJob> matchLoadJobs = Lists.newArrayList();
+        List<LoadJob> uncompletedLoadJob = Lists.newArrayList();
         readLock();
         try {
             Map<String, List<LoadJob>> labelToLoadJobs = 
dbIdToLabelToLoadJobs.get(db.getId());
             if (labelToLoadJobs == null) {
                 throw new DdlException("Load job does not exist");
             }
+            List<LoadJob> matchLoadJobs = Lists.newArrayList();
             addNeedCancelLoadJob(stmt,
                     
labelToLoadJobs.values().stream().flatMap(Collection::stream).collect(Collectors.toList()),
                     matchLoadJobs);
@@ -284,7 +285,7 @@ public class LoadManager implements Writable {
                 throw new DdlException("Load job does not exist");
             }
             // check state here
-            List<LoadJob> uncompletedLoadJob =
+            uncompletedLoadJob =
                     matchLoadJobs.stream().filter(entity -> 
!entity.isTxnDone()).collect(Collectors.toList());
             if (uncompletedLoadJob.isEmpty()) {
                 throw new DdlException("There is no uncompleted job");
@@ -292,7 +293,7 @@ public class LoadManager implements Writable {
         } finally {
             readUnlock();
         }
-        for (LoadJob loadJob : matchLoadJobs) {
+        for (LoadJob loadJob : uncompletedLoadJob) {
             try {
                 loadJob.cancelJob(new FailMsg(FailMsg.CancelType.USER_CANCEL, 
"user cancel"));
             } catch (DdlException e) {


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

Reply via email to