You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@paimon.apache.org by lz...@apache.org on 2024/08/16 01:47:45 UTC
(paimon) branch master updated: [core] fix the issue that BinaryExternalMerger spill files may be leaked. (#3975)
This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/paimon.git
The following commit(s) were added to refs/heads/master by this push:
new 018341e82 [core] fix the issue that BinaryExternalMerger spill files may be leaked. (#3975)
018341e82 is described below
commit 018341e82421284627ccb347de7d56e9d534ac27
Author: liming.1018 <li...@bytedance.com>
AuthorDate: Fri Aug 16 09:47:39 2024 +0800
[core] fix the issue that BinaryExternalMerger spill files may be leaked. (#3975)
---
.../paimon/sort/AbstractBinaryExternalMerger.java | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/paimon-core/src/main/java/org/apache/paimon/sort/AbstractBinaryExternalMerger.java b/paimon-core/src/main/java/org/apache/paimon/sort/AbstractBinaryExternalMerger.java
index e1db28c16..417ec7a20 100644
--- a/paimon-core/src/main/java/org/apache/paimon/sort/AbstractBinaryExternalMerger.java
+++ b/paimon-core/src/main/java/org/apache/paimon/sort/AbstractBinaryExternalMerger.java
@@ -173,7 +173,6 @@ public abstract class AbstractBinaryExternalMerger<Entry> implements Closeable {
channelManager.addChannel(mergedChannelID);
ChannelWriterOutputView output = null;
- int numBytesInLastBlock;
int numBlocksWritten;
try {
output =
@@ -191,14 +190,14 @@ public abstract class AbstractBinaryExternalMerger<Entry> implements Closeable {
output.getChannel().deleteChannel();
}
throw e;
- }
-
- // remove, close and delete channels
- for (FileIOChannel channel : openChannels) {
- channelManager.removeChannel(channel.getChannelID());
- try {
- channel.closeAndDelete();
- } catch (Throwable ignored) {
+ } finally {
+ // remove, close and delete channels
+ for (FileIOChannel channel : openChannels) {
+ channelManager.removeChannel(channel.getChannelID());
+ try {
+ channel.closeAndDelete();
+ } catch (Throwable ignored) {
+ }
}
}