This is an automated email from the ASF dual-hosted git repository. williamsong pushed a commit to branch snapshot-3 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit d607193a99aac7ab066078a098f60d89e8446a10 Author: Potato <[email protected]> AuthorDate: Tue Apr 30 05:24:26 2024 +0800 RATIS-2065. Avoid the out-of-heap memory OOM phenomenon of frequent creation and deletion of Raft group scenarios. (#1071) --- .../apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java index 0e8d0f3b7..6d2960a2e 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogWorker.java @@ -38,6 +38,7 @@ import org.apache.ratis.proto.RaftProtos.LogEntryProto; import org.apache.ratis.statemachine.StateMachine; import org.apache.ratis.statemachine.StateMachine.DataStream; import org.apache.ratis.statemachine.TransactionContext; +import org.apache.ratis.thirdparty.io.netty.util.internal.PlatformDependent; import org.apache.ratis.util.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -241,6 +242,7 @@ class SegmentedRaftLogWorker { Optional.ofNullable(flushExecutor).ifPresent(ExecutorService::shutdown); ConcurrentUtils.shutdownAndWait(TimeDuration.ONE_SECOND.multiply(3), workerThreadExecutor, timeout -> LOG.warn("{}: shutdown timeout in " + timeout, name)); + PlatformDependent.freeDirectBuffer(writeBuffer); IOUtils.cleanup(LOG, out); LOG.info("{} close()", name); }
