You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by yo...@apache.org on 2023/02/16 11:16:26 UTC
[bookkeeper] 32/33: Fix memory leak when the Bookie is in read-only mode. (#3746)
This is an automated email from the ASF dual-hosted git repository.
yong pushed a commit to branch branch-4.15
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit fcff85bebf0290b4d3ae79798f9ea52e994dbf18
Author: Yan Zhao <ho...@apache.org>
AuthorDate: Wed Feb 8 14:53:11 2023 +0800
Fix memory leak when the Bookie is in read-only mode. (#3746)
Descriptions of the changes in this PR:
Fixes #3745
(cherry picked from commit af82d14cb1da6a97b563b80e80b5d2fe462e2c4f)
---
.../main/java/org/apache/bookkeeper/proto/BookieProtoEncoding.java | 2 +-
.../main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java | 4 +++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtoEncoding.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtoEncoding.java
index 860fb6635f..88ee09d61f 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtoEncoding.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtoEncoding.java
@@ -180,7 +180,7 @@ public class BookieProtoEncoding {
packet.markReaderIndex();
return BookieProtocol.ParsedAddRequest.create(
version, ledgerId, entryId, flags,
- masterKey, packet.retain());
+ masterKey, packet);
}
case BookieProtocol.READENTRY:
diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java
index 0fb2d3f8f0..5bee27b0fb 100644
--- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java
+++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java
@@ -176,7 +176,9 @@ abstract class PacketProcessorBase<T extends Request> extends SafeRunnable {
if (request instanceof BookieProtocol.ReadRequest) {
requestProcessor.onReadRequestFinish();
}
- if (request instanceof BookieProtocol.AddRequest) {
+ if (request instanceof BookieProtocol.ParsedAddRequest) {
+ ((BookieProtocol.ParsedAddRequest) request).release();
+ request.recycle();
requestProcessor.onAddRequestFinish();
}
return;