This is an automated email from the ASF dual-hosted git repository. yong pushed a commit to branch branch-4.16 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 25c5e7f47be1c2d1b4b8ebefffb475d7b803eba7 Author: lifepuzzlefun <[email protected]> AuthorDate: Tue Aug 29 14:52:16 2023 +0800 fix read write request leak when executor full. (#4024) Co-authored-by: wangjinlong <[email protected]> (cherry picked from commit 0b0fe0bb42b535c9b447b6ed95b961899832f76b) --- .../main/java/org/apache/bookkeeper/proto/BookieRequestProcessor.java | 4 ++++ .../src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieRequestProcessor.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieRequestProcessor.java index 7ebd8c90a7..a77b3d7bb5 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieRequestProcessor.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieRequestProcessor.java @@ -667,6 +667,9 @@ public class BookieRequestProcessor implements RequestProcessor { BookieProtocol.ETOOMANYREQUESTS, ResponseBuilder.buildErrorResponse(BookieProtocol.ETOOMANYREQUESTS, r), requestStats.getAddRequestStats()); + r.release(); + r.recycle(); + write.recycle(); } } } @@ -703,6 +706,7 @@ public class BookieRequestProcessor implements RequestProcessor { ResponseBuilder.buildErrorResponse(BookieProtocol.ETOOMANYREQUESTS, r), requestStats.getReadRequestStats()); onReadRequestFinish(); + read.recycle(); } } } diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java index 4c9c1c9440..04efd9634b 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ReadEntryProcessor.java @@ -189,7 +189,7 @@ class ReadEntryProcessor extends PacketProcessorBase<ReadRequest> { return String.format("ReadEntry(%d, %d)", request.getLedgerId(), request.getEntryId()); } - private void recycle() { + void recycle() { request.recycle(); super.reset(); this.recyclerHandle.recycle(this);
