From 93b32526fe426efbf7b0a45d0f2e3b8ac02eccf7 Mon Sep 17 00:00:00 2001 From: dapengzhang0 Date: Mon, 13 Nov 2017 15:33:53 -0800 Subject: [PATCH] netty: fix server keepalive unexpected ping ack --- netty/src/main/java/io/grpc/netty/NettyServerHandler.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/netty/src/main/java/io/grpc/netty/NettyServerHandler.java b/netty/src/main/java/io/grpc/netty/NettyServerHandler.java index 79b10236227..17ec63c4c47 100644 --- a/netty/src/main/java/io/grpc/netty/NettyServerHandler.java +++ b/netty/src/main/java/io/grpc/netty/NettyServerHandler.java @@ -761,7 +761,8 @@ private final class KeepAlivePinger implements KeepAliveManager.KeepAlivePinger @Override public void ping() { ChannelFuture pingFuture = encoder().writePing( - ctx, false /* isAck */, KEEPALIVE_PING_BUF, ctx.newPromise()); + // slice KEEPALIVE_PING_BUF because tls handler may modify the reader index + ctx, false /* isAck */, KEEPALIVE_PING_BUF.slice(), ctx.newPromise()); ctx.flush(); if (transportTracer != null) { pingFuture.addListener(new ChannelFutureListener() {