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 <[email protected]>
---
.../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: [email protected]
For additional commands, e-mail: [email protected]