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