Browse Source

ZOOKEEPER-4907: Stop client packets processing after server channel closed

Reviewers: kezhuw, tisonkun
Author: jiafu1115
Closes #2236 from jiafu1115/jiafu1115-patch-1
stroller 1 month ago
parent
commit
6e4ec270ce

+ 5 - 0
zookeeper-server/src/main/java/org/apache/zookeeper/server/NettyServerCnxn.java

@@ -367,6 +367,11 @@ public class NettyServerCnxn extends ServerCnxn {
         checkIsInEventLoop("processMessage");
         LOG.debug("0x{} queuedBuffer: {}", Long.toHexString(sessionId), queuedBuffer);
 
+        if (closingChannel) {
+            LOG.debug("Drop incoming message during connection closing for session 0x{}", Long.toHexString(sessionId));
+            return;
+        }
+
         if (LOG.isTraceEnabled()) {
             LOG.trace("0x{} buf {}", Long.toHexString(sessionId), ByteBufUtil.hexDump(buf));
         }