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

jt2594838 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new a6ac4cba687 [Pipe] Release tablet memory before closing TsFile scan 
parser (#18350)
a6ac4cba687 is described below

commit a6ac4cba687a98a1dbc0babe72f590da9ce9be8f
Author: Caideyipi <[email protected]>
AuthorDate: Wed Jul 29 17:28:50 2026 +0800

    [Pipe] Release tablet memory before closing TsFile scan parser (#18350)
---
 .../tsfile/parser/scan/TsFileInsertionEventScanParser.java     |  5 ++++-
 .../iotdb/db/pipe/event/TsFileInsertionEventParserTest.java    | 10 ++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
index a7be2439983..79abbd65fae 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/event/common/tsfile/parser/scan/TsFileInsertionEventScanParser.java
@@ -165,6 +165,9 @@ public class TsFileInsertionEventScanParser extends 
TsFileInsertionEventParser {
       tsFileSequenceReader.position((long) 
TSFileConfig.MAGIC_STRING.getBytes().length + 1);
 
       prepareData();
+      if (Objects.isNull(chunkReader)) {
+        close();
+      }
     } catch (final Exception e) {
       close();
       throw e;
@@ -440,7 +443,7 @@ public class TsFileInsertionEventScanParser extends 
TsFileInsertionEventParser {
       } while (Objects.nonNull(chunkReader) && 
!chunkReader.hasNextSatisfiedPage());
 
       if (Objects.isNull(chunkReader)) {
-        close();
+        // Let the caller release the last tablet's memory before closing the 
parser.
         break;
       }
 
diff --git 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/TsFileInsertionEventParserTest.java
 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/TsFileInsertionEventParserTest.java
index 42c138926aa..bdc7c1e4e38 100644
--- 
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/TsFileInsertionEventParserTest.java
+++ 
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/pipe/event/TsFileInsertionEventParserTest.java
@@ -172,6 +172,16 @@ public class TsFileInsertionEventParserTest {
             null,
             null,
             false)) {
+      replaceAllocatedTabletMemory(
+          parser,
+          new PipeMemoryBlock(0) {
+            @Override
+            public void close() {
+              Assert.assertEquals(0, getMemoryUsageInBytes());
+              super.close();
+            }
+          });
+
       final Iterator<TabletInsertionEvent> iterator = 
parser.toTabletInsertionEvents().iterator();
 
       Assert.assertTrue(iterator.hasNext());

Reply via email to