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

shuwenwei pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/dev/1.3 by this push:
     new 01a889cd5fd [To dev/1.3] Fix duplicate DataRegion scheduling after 
recovery (#19065)
01a889cd5fd is described below

commit 01a889cd5fd50bfe7d4eb3e6b24091c9ea634739
Author: Hongzhi Gao <[email protected]>
AuthorDate: Fri Oct 30 18:34:05 2026 +0800

    [To dev/1.3] Fix duplicate DataRegion scheduling after recovery (#19065)
---
 .../java/org/apache/iotdb/db/storageengine/StorageEngine.java  |  2 +-
 .../compaction/schedule/CompactionScheduleTaskManager.java     | 10 ++++++++--
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
index b3179e8556e..fb402cb8000 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/StorageEngine.java
@@ -368,7 +368,7 @@ public class StorageEngine implements IService {
       if (dataRegion != null) {
         List<Callable<Void>> asyncTsFileResourceRecoverTasks =
             dataRegion.getAsyncTsFileResourceRecoverTaskList();
-        if (asyncTsFileResourceRecoverTasks != null) {
+        if (asyncTsFileResourceRecoverTasks != null && 
!asyncTsFileResourceRecoverTasks.isEmpty()) {
           Callable<Void> taskOfRegion =
               () -> {
                 for (Callable<Void> task : asyncTsFileResourceRecoverTasks) {
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java
index 516b1489a20..96c7b426216 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/schedule/CompactionScheduleTaskManager.java
@@ -242,11 +242,17 @@ public class CompactionScheduleTaskManager implements 
IService {
   }
 
   public void registerDataRegion(DataRegion dataRegion) {
-    dataRegionList.add(dataRegion);
+    synchronized (dataRegionList) {
+      if (!dataRegionList.contains(dataRegion)) {
+        dataRegionList.add(dataRegion);
+      }
+    }
   }
 
   public void unregisterDataRegion(DataRegion dataRegion) {
-    dataRegionList.remove(dataRegion);
+    synchronized (dataRegionList) {
+      dataRegionList.removeIf(region -> region == dataRegion);
+    }
   }
 
   public class RepairDataTaskManager {

Reply via email to