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