From b0a8765aa4123b212641d519b7165d0db4d08d43 Mon Sep 17 00:00:00 2001 From: Tian Jiang Date: Wed, 4 Mar 2026 15:43:42 +0800 Subject: [PATCH 1/2] Fixed that InsertionCompactionSelection may skip a file deleted by another compaction --- .../selector/impl/RewriteCrossSpaceCompactionSelector.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java index ffad8a487da87..a7e6041ac982e 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java @@ -490,6 +490,12 @@ private InsertionCrossCompactionTaskResource selectCurrentUnSeqFile( nextSeqFileIndex = Math.min(nextSeqFileIndex, i); } if (!seqFile.containsDevice(deviceId)) { + // if the seqFile is deleted by another compaction concurrently, + // we cannot ensure whether the seqFile overlaps with the unseqFile. + // Let a later selection retry with compacted file. + if (seqFile.resource.isDeleted()) { + return result; + } continue; } DeviceInfo seqDeviceInfo = seqFile.getDeviceInfoById(deviceId); From bebb7a44ae0f560d615bacd16b709f3e447d7c04 Mon Sep 17 00:00:00 2001 From: Tian Jiang Date: Wed, 4 Mar 2026 15:49:56 +0800 Subject: [PATCH 2/2] Update --- .../selector/impl/RewriteCrossSpaceCompactionSelector.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java index a7e6041ac982e..8439687a627c3 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/selector/impl/RewriteCrossSpaceCompactionSelector.java @@ -493,7 +493,7 @@ private InsertionCrossCompactionTaskResource selectCurrentUnSeqFile( // if the seqFile is deleted by another compaction concurrently, // we cannot ensure whether the seqFile overlaps with the unseqFile. // Let a later selection retry with compacted file. - if (seqFile.resource.isDeleted()) { + if (!seqFile.hasDetailedDeviceInfo()) { return result; } continue;