This is an automated email from the ASF dual-hosted git repository.
cgivre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
The following commit(s) were added to refs/heads/master by this push:
new 6d94399fef DRILL-8489: Sender memory leak when rpc encode exception
(#2901)
6d94399fef is described below
commit 6d94399fef380d55d79bff390bfaf3a7e2f61805
Author: shfshihuafeng <[email protected]>
AuthorDate: Wed May 1 22:49:30 2024 +0800
DRILL-8489: Sender memory leak when rpc encode exception (#2901)
---
exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcEncoder.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcEncoder.java
b/exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcEncoder.java
index 89466302ba..007be0c826 100644
--- a/exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcEncoder.java
+++ b/exec/rpc/src/main/java/org/apache/drill/exec/rpc/RpcEncoder.java
@@ -61,7 +61,7 @@ class RpcEncoder extends
MessageToMessageEncoder<OutboundRpcMessage>{
msg.release();
return;
}
-
+ boolean encodeSucess = false;
try{
if (RpcConstants.EXTRA_DEBUGGING) {
logger.debug("Encoding outbound message {}", msg);
@@ -131,9 +131,13 @@ class RpcEncoder extends
MessageToMessageEncoder<OutboundRpcMessage>{
if (RpcConstants.EXTRA_DEBUGGING) {
logger.debug("Sent message. Ending writer index was {}.",
buf.writerIndex());
}
+ encodeSucess = true;
} finally {
// make sure to release Rpc Messages underlying byte buffers.
- //msg.release();
+ //if msg instanceof ReferenceCounted,netty can release msg.
+ if (!encodeSucess) {
+ msg.release();
+ }
}
}