From 959769aad890b27d713e50d229a54d5bb821fe78 Mon Sep 17 00:00:00 2001 From: ZHANG Dapeng Date: Thu, 4 Jun 2020 13:35:51 -0700 Subject: [PATCH] core: always propagate RetriableStream.Sublistener.onReady() This fixes #6817 for the normal retry case, although it makes the hedging issue #7089 more broken, and there is still space of optimization for normal retry. --- core/src/main/java/io/grpc/internal/RetriableStream.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/RetriableStream.java b/core/src/main/java/io/grpc/internal/RetriableStream.java index 7fae3f8ae39..22aa35a0ee1 100644 --- a/core/src/main/java/io/grpc/internal/RetriableStream.java +++ b/core/src/main/java/io/grpc/internal/RetriableStream.java @@ -947,10 +947,10 @@ public void messagesAvailable(MessageProducer producer) { @Override public void onReady() { - // TODO(zdapeng): the more correct way to handle onReady - if (state.drainedSubstreams.contains(substream)) { - masterListener.onReady(); - } + // FIXME(#7089): hedging case is broken. + // TODO(zdapeng): optimization: if the substream is not drained yet, delay onReady() once + // drained and if is still ready. + masterListener.onReady(); } }