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 ede7c19bb10cd108bec834b785062b6d41fd06bb
Author: Yan Zhao <[email protected]>
AuthorDate: Thu Oct 13 10:42:01 2022 +0800

    Fix byteBuf potential memory leak problem. (#3525)
    
    * Fix byteBuf potential memory leak problem.
    
    (cherry picked from commit 62155369d199f36720938e913541b223dab8b047)
---
 .../main/java/org/apache/bookkeeper/proto/PacketProcessorBase.java  | 6 ++++++
 1 file changed, 6 insertions(+)

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 07954d746a..c1bf977956 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
@@ -109,6 +109,9 @@ abstract class PacketProcessorBase<T extends Request> 
extends SafeRunnable {
                 requestProcessor.getRequestStats().getChannelWriteStats()
                     .registerFailedEvent(MathUtils.elapsedNanos(writeNanos), 
TimeUnit.NANOSECONDS);
                 
statsLogger.registerFailedEvent(MathUtils.elapsedNanos(enqueueNanos), 
TimeUnit.NANOSECONDS);
+                if (response instanceof BookieProtocol.ReadResponse) {
+                    ((BookieProtocol.ReadResponse) response).release();
+                }
                 return;
             } else {
                 requestProcessor.invalidateBlacklist(channel);
@@ -118,6 +121,9 @@ abstract class PacketProcessorBase<T extends Request> 
extends SafeRunnable {
         if (channel.isActive()) {
             channel.writeAndFlush(response, channel.voidPromise());
         } else {
+            if (response instanceof BookieProtocol.ReadResponse) {
+                ((BookieProtocol.ReadResponse) response).release();
+            }
             LOGGER.debug("Netty channel {} is inactive, "
                     + "hence bypassing netty channel writeAndFlush during 
sendResponse", channel);
         }

Reply via email to