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

rong pushed a commit to branch fix-pipe-batch
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 78f14800378072d88f8bcd9a620b6604e6c62ba6
Author: Steve Yurong Su <[email protected]>
AuthorDate: Thu Apr 24 12:59:12 2025 +0800

    Enhance close in PipeTsFileResource
---
 .../iotdb/db/pipe/resource/tsfile/PipeTsFileResource.java  | 14 +++++++++++---
 .../db/pipe/resource/tsfile/PipeTsFileResourceManager.java |  2 +-
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResource.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResource.java
index dd3ca9c5bc0..bf789b9732d 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResource.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResource.java
@@ -122,7 +122,7 @@ public class PipeTsFileResource implements AutoCloseable {
     return finalReferenceCount;
   }
 
-  public synchronized boolean closeIfOutOfTimeToLive() throws IOException {
+  public synchronized boolean closeIfOutOfTimeToLive() {
     if (referenceCount.get() <= 0
         && (deviceMeasurementsMap == null // Not cached yet.
             || System.currentTimeMillis() - lastUnpinToZeroTime.get()
@@ -135,7 +135,7 @@ public class PipeTsFileResource implements AutoCloseable {
   }
 
   @Override
-  public synchronized void close() throws IOException {
+  public synchronized void close() {
     if (deviceMeasurementsMap != null) {
       deviceMeasurementsMap = null;
     }
@@ -153,7 +153,15 @@ public class PipeTsFileResource implements AutoCloseable {
       allocatedMemoryBlock = null;
     }
 
-    Files.deleteIfExists(hardlinkOrCopiedFile.toPath());
+    try {
+      Files.deleteIfExists(hardlinkOrCopiedFile.toPath());
+    } catch (final Exception e) {
+      LOGGER.error(
+          "PipeTsFileResource: Failed to delete tsfile {} when closing, 
because {}. Please MANUALLY delete it.",
+          hardlinkOrCopiedFile,
+          e.getMessage(),
+          e);
+    }
 
     LOGGER.info("PipeTsFileResource: Closed tsfile {} and cleaned up.", 
hardlinkOrCopiedFile);
   }
diff --git 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResourceManager.java
 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResourceManager.java
index d851b58985c..6d04e909cb1 100644
--- 
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResourceManager.java
+++ 
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/pipe/resource/tsfile/PipeTsFileResourceManager.java
@@ -103,7 +103,7 @@ public class PipeTsFileResourceManager {
                   entry.getValue().getReferenceCount(),
                   entry.getValue().getFileSize()));
         }
-      } catch (final IOException e) {
+      } catch (final Exception e) {
         LOGGER.warn("failed to close PipeTsFileResource when checking TTL: ", 
e);
       } finally {
         segmentLock.unlock(new File(hardlinkOrCopiedFile));

Reply via email to