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