From f3731eabb372e440252b19db0c6e3c882ea938f1 Mon Sep 17 00:00:00 2001 From: Carl Mastrangelo Date: Tue, 16 Apr 2019 13:17:59 -0700 Subject: [PATCH] netty: deflake ping flow control logic --- .../main/java/io/grpc/netty/AbstractNettyHandler.java | 9 +++++++-- .../test/java/io/grpc/netty/NettyHandlerTestBase.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/netty/src/main/java/io/grpc/netty/AbstractNettyHandler.java b/netty/src/main/java/io/grpc/netty/AbstractNettyHandler.java index cf1e73eeff..59267c2430 100644 --- a/netty/src/main/java/io/grpc/netty/AbstractNettyHandler.java +++ b/netty/src/main/java/io/grpc/netty/AbstractNettyHandler.java @@ -206,9 +206,14 @@ abstract class AbstractNettyHandler extends GrpcHttp2ConnectionHandler { return dataSizeSincePing; } - @VisibleForTesting - void setDataSizeSincePing(int dataSize) { + private void setDataSizeSincePing(int dataSize) { dataSizeSincePing = dataSize; } + + @VisibleForTesting + void setDataSizeAndSincePing(int dataSize) { + setDataSizeSincePing(dataSize); + lastPingTime = System.nanoTime() - TimeUnit.SECONDS.toNanos(1); + } } } diff --git a/netty/src/test/java/io/grpc/netty/NettyHandlerTestBase.java b/netty/src/test/java/io/grpc/netty/NettyHandlerTestBase.java index b69f001701..1e0870460e 100644 --- a/netty/src/test/java/io/grpc/netty/NettyHandlerTestBase.java +++ b/netty/src/test/java/io/grpc/netty/NettyHandlerTestBase.java @@ -440,7 +440,7 @@ public abstract class NettyHandlerTestBase { Http2LocalFlowController localFlowController = connection().local().flowController(); int maxWindow = handler.flowControlPing().maxWindow(); - handler.flowControlPing().setDataSizeSincePing(maxWindow); + handler.flowControlPing().setDataSizeAndSincePing(maxWindow); long payload = handler.flowControlPing().payload(); channelRead(pingFrame(true, payload));