You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ratis.apache.org by sh...@apache.org on 2020/05/07 07:46:20 UTC
[incubator-ratis] branch master updated: RATIS-925. Fix Memory leak
of RaftServerImpl for no remove from static RaftServerMetrics::metricsMap
(#90)
This is an automated email from the ASF dual-hosted git repository.
shashikant pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ratis.git
The following commit(s) were added to refs/heads/master by this push:
new 36b9af3 RATIS-925. Fix Memory leak of RaftServerImpl for no remove from static RaftServerMetrics::metricsMap (#90)
36b9af3 is described below
commit 36b9af3a74828209eb3f4eb0b10aff9193228b8a
Author: runzhiwang <51...@users.noreply.github.com>
AuthorDate: Thu May 7 15:46:09 2020 +0800
RATIS-925. Fix Memory leak of RaftServerImpl for no remove from static RaftServerMetrics::metricsMap (#90)
---
.../src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java | 1 +
.../main/java/org/apache/ratis/server/impl/RaftServerMetrics.java | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
index 8526028..4633480 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerImpl.java
@@ -276,6 +276,7 @@ public class RaftServerImpl implements RaftServerProtocol, RaftServerAsynchronou
}
leaderElectionMetrics.unregister();
raftServerMetrics.unregister();
+ RaftServerMetrics.removeRaftServerMetrics(this);
if (deleteDirectory) {
final RaftStorageDirectory dir = state.getStorage().getStorageDir();
try {
diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
index ebbd346..0098627 100644
--- a/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
+++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/RaftServerMetrics.java
@@ -78,6 +78,13 @@ public final class RaftServerMetrics extends RatisMetrics {
return serverMetrics;
}
+ public static void removeRaftServerMetrics(RaftServerImpl raftServer) {
+ String memberId = raftServer.getMemberId().toString();
+ if (metricsMap.containsKey(memberId)) {
+ metricsMap.remove(memberId);
+ }
+ }
+
private RaftServerMetrics(RaftServerImpl server) {
registry = getMetricRegistryForRaftServer(server.getMemberId().toString());
commitInfoCache = server.getCommitInfoCache();