From 8d41014b9572659e6c3717e85c2dcb8727fc4d92 Mon Sep 17 00:00:00 2001 From: zh0122 Date: Fri, 4 Jun 2021 16:39:21 +0800 Subject: [PATCH 1/2] [Bug] Ignore drop table log when table has been dropped --- .../src/main/java/org/apache/doris/catalog/Catalog.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java index 3e7fb1c733e674..40fae8ce18763d 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java @@ -4482,6 +4482,13 @@ public void replayDropTable(Database db, long tableId, boolean isForceDrop) { Table table = db.getTable(tableId); // delete from db meta db.writeLock(); + if (table == null) { + /** + * Same as replayUpdateReplica() + */ + LOG.warn("Olap table is null when the drop table log is replayed, tableId: {}", tableId); + return; + } table.writeLock(); try { unprotectDropTable(db, table, isForceDrop, true); From d4ac058d700cbeb041b443ecdf28b64a99bb8276 Mon Sep 17 00:00:00 2001 From: zh0122 Date: Fri, 4 Jun 2021 16:57:07 +0800 Subject: [PATCH 2/2] fix --- fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java index 40fae8ce18763d..9304161a8aa0c0 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Catalog.java @@ -4481,7 +4481,6 @@ public boolean unprotectDropTable(Database db, Table table, boolean isForceDrop, public void replayDropTable(Database db, long tableId, boolean isForceDrop) { Table table = db.getTable(tableId); // delete from db meta - db.writeLock(); if (table == null) { /** * Same as replayUpdateReplica() @@ -4489,6 +4488,7 @@ public void replayDropTable(Database db, long tableId, boolean isForceDrop) { LOG.warn("Olap table is null when the drop table log is replayed, tableId: {}", tableId); return; } + db.writeLock(); table.writeLock(); try { unprotectDropTable(db, table, isForceDrop, true);