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 <biao...@aliyun.com>
    Co-authored-by: wubiao02 <wubia...@meituan.com>
---
 .../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: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to