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

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


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new cb3e77379dd branch-2.1: [fix](backup) filter the staled task response 
by job id #47416 (#47445)
cb3e77379dd is described below

commit cb3e77379dd8b61fa2131f0fdb9d50047a4c294b
Author: github-actions[bot] 
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Feb 12 14:41:32 2025 +0800

    branch-2.1: [fix](backup) filter the staled task response by job id #47416 
(#47445)
    
    Cherry-picked from #47416
    
    Co-authored-by: walter <maoch...@selectdb.com>
---
 .../org/apache/doris/backup/BackupHandler.java     | 28 ++++++++++++++++++----
 1 file changed, 23 insertions(+), 5 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java 
b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
index 34e127d137a..58497a64fbe 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/BackupHandler.java
@@ -729,12 +729,18 @@ public class BackupHandler extends MasterDaemon 
implements Writable {
 
     public boolean handleFinishedSnapshotTask(SnapshotTask task, 
TFinishTaskRequest request) {
         AbstractJob job = getCurrentJob(task.getDbId());
-
         if (job == null) {
             LOG.warn("failed to find backup or restore job for task: {}", 
task);
             // return true to remove this task from AgentTaskQueue
             return true;
         }
+
+        if (job.getJobId() != task.getJobId()) {
+            LOG.warn("invalid snapshot task: {}, job id: {}, task job id: {}", 
task, job.getJobId(), task.getJobId());
+            // return true to remove this task from AgentTaskQueue
+            return true;
+        }
+
         if (job instanceof BackupJob) {
             if (task.isRestoreTask()) {
                 LOG.warn("expect finding restore job, but get backup job {} 
for task: {}", job, task);
@@ -759,13 +765,13 @@ public class BackupHandler extends MasterDaemon 
implements Writable {
             LOG.info("invalid upload task: {}, no backup job is found. db id: 
{}", task, task.getDbId());
             return false;
         }
-        BackupJob restoreJob = (BackupJob) job;
-        if (restoreJob.getJobId() != task.getJobId() || restoreJob.getState() 
!= BackupJobState.UPLOADING) {
+        BackupJob backupJob = (BackupJob) job;
+        if (backupJob.getJobId() != task.getJobId() || backupJob.getState() != 
BackupJobState.UPLOADING) {
             LOG.info("invalid upload task: {}, job id: {}, job state: {}",
-                     task, restoreJob.getJobId(), 
restoreJob.getState().name());
+                     task, backupJob.getJobId(), backupJob.getState().name());
             return false;
         }
-        return restoreJob.finishSnapshotUploadTask(task, request);
+        return backupJob.finishSnapshotUploadTask(task, request);
     }
 
     public boolean handleDownloadSnapshotTask(DownloadTask task, 
TFinishTaskRequest request) {
@@ -776,6 +782,12 @@ public class BackupHandler extends MasterDaemon implements 
Writable {
             return true;
         }
 
+        if (job.getJobId() != task.getJobId()) {
+            LOG.warn("invalid download task: {}, job id: {}, task job id: {}", 
task, job.getJobId(), task.getJobId());
+            // return true to remove this task from AgentTaskQueue
+            return true;
+        }
+
         return ((RestoreJob) job).finishTabletDownloadTask(task, request);
     }
 
@@ -787,6 +799,12 @@ public class BackupHandler extends MasterDaemon implements 
Writable {
             return true;
         }
 
+        if (job.getJobId() != task.getJobId()) {
+            LOG.warn("invalid dir move task: {}, job id: {}, task job id: {}", 
task, job.getJobId(), task.getJobId());
+            // return true to remove this task from AgentTaskQueue
+            return true;
+        }
+
         return ((RestoreJob) job).finishDirMoveTask(task, request);
     }
 


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

Reply via email to