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 82064902c0f branch-2.1: [Bug] Fix accidental table deletion during
restore job #48820 (#49498)
82064902c0f is described below
commit 82064902c0f6486b8b05c1c38f437bc3e4a6b401
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Mar 29 20:26:12 2025 +0800
branch-2.1: [Bug] Fix accidental table deletion during restore job #48820
(#49498)
Cherry-picked from #48820
Co-authored-by: wubiao <[email protected]>
Co-authored-by: wubiao02 <[email protected]>
---
.../src/main/java/org/apache/doris/backup/RestoreJob.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
index d812b6b18f4..de9f2b3b7a8 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
@@ -664,6 +664,9 @@ public class RestoreJob extends AbstractJob {
// Check and prepare meta objects.
Map<Long, AgentBatchTask> batchTaskPerTable = new HashMap<>();
+
+ // The tables that are restored but not committed, because the table
name may be changed.
+ List<Table> stagingRestoreTables = Lists.newArrayList();
db.readLock();
try {
for (Map.Entry<String, BackupOlapTableInfo> olapTableEntry :
jobInfo.backupOlapTableObjects.entrySet()) {
@@ -846,7 +849,7 @@ public class RestoreJob extends AbstractJob {
if (LOG.isDebugEnabled()) {
LOG.debug("put remote table {} to restoredTbls",
remoteOlapTbl.getName());
}
- restoredTbls.add(remoteOlapTbl);
+ stagingRestoreTables.add(remoteOlapTbl);
}
} // end of all restore olap tables
@@ -875,7 +878,7 @@ public class RestoreJob extends AbstractJob {
String srcDbName = jobInfo.dbName;
remoteView.resetViewDefForRestore(srcDbName, db.getName());
remoteView.resetIdsForRestore(env);
- restoredTbls.add(remoteView);
+ stagingRestoreTables.add(remoteView);
}
}
@@ -896,7 +899,7 @@ public class RestoreJob extends AbstractJob {
}
} else {
remoteOdbcTable.resetIdsForRestore(env);
- restoredTbls.add(remoteOdbcTable);
+ stagingRestoreTables.add(remoteOdbcTable);
}
}
@@ -929,7 +932,7 @@ public class RestoreJob extends AbstractJob {
}
// generate create replica task for all restored tables
- for (Table restoreTbl : restoredTbls) {
+ for (Table restoreTbl : stagingRestoreTables) {
if (restoreTbl.getType() == TableType.OLAP) {
OlapTable restoreOlapTable = (OlapTable) restoreTbl;
for (Partition restorePart :
restoreOlapTable.getPartitions()) {
@@ -955,6 +958,7 @@ public class RestoreJob extends AbstractJob {
tableName = tableAliasWithAtomicRestore(tableName);
}
restoreTbl.setName(tableName);
+ restoredTbls.add(restoreTbl);
}
if (LOG.isDebugEnabled()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]