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

szetszwo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ratis.git


The following commit(s) were added to refs/heads/master by this push:
     new 1fe59e07d RATIS-2065. Avoid the out-of-heap memory OOM phenomenon of 
frequent creation and deletion of Raft group scenarios. (#1071)
1fe59e07d is described below

commit 1fe59e07dff9b02e46d150de8b46ed2d4fc3abce
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 7dc87faf7..cd15ea5ef 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;
@@ -242,6 +243,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);
   }

Reply via email to