Hi,

This is a bug. If I remember correctly, this caused keepalive_timeout.cc to 
fail sometimes and that is why it was rolled back.
With that said, you could also configure ping timeout which would apply to 
keep-alive as well.

On Tuesday, July 21, 2026 at 3:35:59 AM UTC+5:30 Jonathan Patchell wrote:

> I have been testing failover scenarios on AIX where I bring down the 
> network on the member in a cluster the client is connected to. It looks 
> like there is a bug with the keep-alive timeouts where the timer isn’t 
> being set. This causes the failover to take fairly long (~75 seconds) on 
> AIX as there aren’t any OS-level socket errors until then.
>
> I have found that the following change causes the keep-alive timeouts to 
> work properly causing quicker failovers respecting the 
> GRPC_ARG_KEEPALIVE_TIMEOUT_MS value on AIX.
>
> I have been using grpc v1.80.0.
>
> diff --git a/src/core/ext/transport/chttp2/transport/writing.cc 
> b/src/core/ext/transport/chttp2/transport/writing.cc
>
> index 30f6caa033..7a288c7066 100644
>
> --- a/src/core/ext/transport/chttp2/transport/writing.cc
>
> +++ b/src/core/ext/transport/chttp2/transport/writing.cc
>
> @@ -799,7 +799,7 @@ void grpc_chttp2_end_write(grpc_chttp2_transport* t, 
> grpc_error_handle error) {
>
>  
>
>      if (t->keepalive_incoming_data_wanted &&
>
>          t->keepalive_timeout < t->ping_timeout &&
>
> -        t->keepalive_ping_timeout_handle !=
>
> +        t->keepalive_ping_timeout_handle ==
>
>              grpc_event_engine::experimental::EventEngine::TaskHandle::
>
>                  kInvalid) {
>
>        if (GRPC_TRACE_FLAG_ENABLED(http2_ping) ||
>
> `keepalive_ping_timeout_handle != kInvalid` can never be true when the 
> handle is first being armed (it starts as `kInvalid`), so the watchdog 
> timer is never scheduled.
>
> It looks like this was a bug that was identified and fixed in 
> https://github.com/grpc/grpc/commit/b086f689effef7276bef6456f599aee1c12489d4. 
> However, there was an automated rollback to the original version in 
> https://github.com/grpc/grpc/commit/4f9b6f15f391433ef12952fe9578b9b50e159990
> .
>
> The bug is platform-agnostic dead code, but the bug seems to be only 
> visible on AIX (I don’t see such issues on Linux).
>
> Could someone confirm whether this is indeed a bug worth fixing upstream? 
> Happy to submit a PR with this fix.
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/grpc-io/ae8c3f56-e8e6-41ac-8cec-b5152880afb0n%40googlegroups.com.

Reply via email to