caiconghui commented on a change in pull request #3775:
URL: https://github.com/apache/incubator-doris/pull/3775#discussion_r531485554



##########
File path: fe/fe-core/src/main/java/org/apache/doris/backup/RestoreJob.java
##########
@@ -1347,42 +1374,53 @@ public void cancelInternal(boolean isReplay) {
         // clean restored objs
         Database db = catalog.getDb(dbId);
         if (db != null) {
-            db.writeLock();
-            try {
-                // rollback table's state to NORMAL
-                setTableStateToNormal(db);
+            // rollback table's state to NORMAL
+            setTableStateToNormal(db);
 
-                // remove restored tbls
-                for (OlapTable restoreTbl : restoredTbls) {
-                    LOG.info("remove restored table when cancelled: {}", 
restoreTbl.getName());
+            // remove restored tbls
+            for (OlapTable restoreTbl : restoredTbls) {
+                LOG.info("remove restored table when cancelled: {}", 
restoreTbl.getName());
+                restoreTbl.writeLock();
+                try {
                     for (Partition part : restoreTbl.getPartitions()) {
                         for (MaterializedIndex idx : 
part.getMaterializedIndices(IndexExtState.VISIBLE)) {
                             for (Tablet tablet : idx.getTablets()) {
                                 
Catalog.getCurrentInvertedIndex().deleteTablet(tablet.getId());
                             }
                         }
                     }
+                } finally {
+                    restoreTbl.writeUnlock();
+                }
+                db.writeLock();
+                try {

Review comment:
       fix

##########
File path: fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
##########
@@ -476,27 +464,48 @@ public void processAlterCluster(AlterSystemStmt stmt) 
throws UserException {
     private void processRename(Database db, OlapTable table, List<AlterClause> 
alterClauses) throws DdlException {
         for (AlterClause alterClause : alterClauses) {
             if (alterClause instanceof TableRenameClause) {
-                Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof RollupRenameClause) {
-                Catalog.getCurrentCatalog().renameRollup(db, table, 
(RollupRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof PartitionRenameClause) {
-                Catalog.getCurrentCatalog().renamePartition(db, table, 
(PartitionRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof ColumnRenameClause) {
-                Catalog.getCurrentCatalog().renameColumn(db, table, 
(ColumnRenameClause) alterClause);
+                db.writeLock();
+                table.writeLock();
+                try {
+                    Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
+                } finally {
+                    table.writeUnlock();
+                    db.writeUnlock();
+                }
                 break;
             } else {
-                Preconditions.checkState(false);
+                table.writeLock();
+                try {
+                    if (alterClause instanceof RollupRenameClause) {
+                        Catalog.getCurrentCatalog().renameRollup(db, table, 
(RollupRenameClause) alterClause);
+                        break;
+                    } else if (alterClause instanceof PartitionRenameClause) {
+                        Catalog.getCurrentCatalog().renamePartition(db, table, 
(PartitionRenameClause) alterClause);
+                        break;
+                    } else if (alterClause instanceof ColumnRenameClause) {
+                        Catalog.getCurrentCatalog().renameColumn(db, table, 
(ColumnRenameClause) alterClause);
+                        break;
+                    } else {
+                        Preconditions.checkState(false);
+                    }
+                } finally {
+                    table.writeUnlock();
+                }
             }
         }
     }
 
     private void processRename(Database db, Table table, List<AlterClause> 
alterClauses) throws DdlException {
         for (AlterClause alterClause : alterClauses) {
             if (alterClause instanceof TableRenameClause) {
-                Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
+                db.writeLock();

Review comment:
       done

##########
File path: fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
##########
@@ -476,27 +464,48 @@ public void processAlterCluster(AlterSystemStmt stmt) 
throws UserException {
     private void processRename(Database db, OlapTable table, List<AlterClause> 
alterClauses) throws DdlException {
         for (AlterClause alterClause : alterClauses) {
             if (alterClause instanceof TableRenameClause) {
-                Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof RollupRenameClause) {
-                Catalog.getCurrentCatalog().renameRollup(db, table, 
(RollupRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof PartitionRenameClause) {
-                Catalog.getCurrentCatalog().renamePartition(db, table, 
(PartitionRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof ColumnRenameClause) {
-                Catalog.getCurrentCatalog().renameColumn(db, table, 
(ColumnRenameClause) alterClause);
+                db.writeLock();
+                table.writeLock();
+                try {
+                    Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
+                } finally {
+                    table.writeUnlock();
+                    db.writeUnlock();
+                }
                 break;
             } else {
-                Preconditions.checkState(false);
+                table.writeLock();

Review comment:
       done

##########
File path: fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
##########
@@ -476,27 +464,48 @@ public void processAlterCluster(AlterSystemStmt stmt) 
throws UserException {
     private void processRename(Database db, OlapTable table, List<AlterClause> 
alterClauses) throws DdlException {
         for (AlterClause alterClause : alterClauses) {
             if (alterClause instanceof TableRenameClause) {
-                Catalog.getCurrentCatalog().renameTable(db, table, 
(TableRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof RollupRenameClause) {
-                Catalog.getCurrentCatalog().renameRollup(db, table, 
(RollupRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof PartitionRenameClause) {
-                Catalog.getCurrentCatalog().renamePartition(db, table, 
(PartitionRenameClause) alterClause);
-                break;
-            } else if (alterClause instanceof ColumnRenameClause) {
-                Catalog.getCurrentCatalog().renameColumn(db, table, 
(ColumnRenameClause) alterClause);
+                db.writeLock();

Review comment:
       done




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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

Reply via email to