From 3c71a7822215f494284b846e1fe70ba6317a6b7c Mon Sep 17 00:00:00 2001 From: Haoning Sun Date: Thu, 13 Jul 2023 11:54:43 +0800 Subject: [PATCH] Fix memory leaking when loading data ### What changes are proposed in this pull request? Release buffer when an exception occurs. ### Why are the changes needed? Fix memory leaking. pr-link: Alluxio/alluxio#17758 change-id: cid-b5e9e655aff744b04d3187687a62dbaed6754186 --- .../src/main/java/alluxio/worker/block/MonoBlockStore.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/server/worker/src/main/java/alluxio/worker/block/MonoBlockStore.java b/core/server/worker/src/main/java/alluxio/worker/block/MonoBlockStore.java index d3d091b197a5..67c1cf017784 100644 --- a/core/server/worker/src/main/java/alluxio/worker/block/MonoBlockStore.java +++ b/core/server/worker/src/main/java/alluxio/worker/block/MonoBlockStore.java @@ -343,12 +343,12 @@ public CompletableFuture> load(List blocks, UfsReadOpti blockWriter.close(); } catch (IOException e) { throw AlluxioRuntimeException.from(e); - } finally { - NioDirectBufferPool.release(buf); } }) .thenRun(() -> commitBlock(sessionId, blockId, false)) + .thenRun(() -> NioDirectBufferPool.release(buf)) .exceptionally(t -> { + NioDirectBufferPool.release(buf); handleException(t.getCause(), block, errors, sessionId); return null; });