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));
