You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/11/29 02:58:27 UTC

[iotdb] branch rel/1.0 updated: [To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)

This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/1.0 by this push:
     new b263e7c228 [To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)
b263e7c228 is described below

commit b263e7c22895490abb1f463074a8f9d59ecf3f1d
Author: Haonan <hh...@outlook.com>
AuthorDate: Tue Nov 29 10:58:22 2022 +0800

    [To rel/1.0][IOTDB-5045] fix delete database, wal and tsfile still left (#8234)
---
 .../main/java/org/apache/iotdb/db/engine/StorageEngineV2.java |  2 +-
 .../org/apache/iotdb/db/engine/storagegroup/DataRegion.java   | 11 ++++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
index 17be5981cb..e5aa77d06b 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/StorageEngineV2.java
@@ -644,6 +644,7 @@ public class StorageEngineV2 implements IService {
     DataRegion region =
         deletingDataRegionMap.computeIfAbsent(regionId, k -> dataRegionMap.remove(regionId));
     if (region != null) {
+      region.markDeleted();
       try {
         region.abortCompaction();
         region.syncDeleteDataFiles();
@@ -665,7 +666,6 @@ public class StorageEngineV2 implements IService {
             e);
       } finally {
         deletingDataRegionMap.remove(regionId);
-        region.markDeleted();
       }
     }
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
index 80d38b4ca1..7c63f1f346 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/storagegroup/DataRegion.java
@@ -883,6 +883,9 @@ public class DataRegion {
     }
     writeLock("InsertRow");
     try {
+      if (deleted) {
+        return;
+      }
       // init map
       long timePartitionId = StorageEngineV2.getTimePartition(insertRowNode.getTime());
 
@@ -929,6 +932,9 @@ public class DataRegion {
     }
     writeLock("insertTablet");
     try {
+      if (deleted) {
+        return;
+      }
       TSStatus[] results = new TSStatus[insertTabletNode.getRowCount()];
       Arrays.fill(results, RpcUtils.SUCCESS_STATUS);
       boolean noFailure = true;
@@ -3057,6 +3063,9 @@ public class DataRegion {
     }
     writeLock("InsertRowsOfOneDevice");
     try {
+      if (deleted) {
+        return;
+      }
       boolean isSequence = false;
       for (int i = 0; i < insertRowsOfOneDeviceNode.getInsertRowNodeList().size(); i++) {
         InsertRowNode insertRowNode = insertRowsOfOneDeviceNode.getInsertRowNodeList().get(i);
@@ -3337,9 +3346,9 @@ public class DataRegion {
 
   /** Release all threads waiting for this data region successfully deleted */
   public void markDeleted() {
-    deleted = true;
     writeLock("markDeleted");
     try {
+      deleted = true;
       deletedCondition.signalAll();
     } finally {
       writeUnlock();