You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today H2 pings work in tandem with the idle timeout to help the client discover bad connections quicker, assuming no other traffic in flight on that connection already. This coupling probably makes pings less useful than they could have been otherwise.
One quick improvement that we make is to provide an optional knob for users to configure their clients to proactively (and less gracefully) tear down connections for which the ACK to ping (the pong?) didn't arrive in time. This decision should be made irregardless to what idle timeout is doing today.
This is how a similar idea is implemented in Finagle (ref).
The rough semantics I'm suggesting for the new functionality are:
Issue pings by a timer, when no reads were performed within a pingTimeout.
If pong doesn't arrive within pingAckTimeout try again for N times (configurable).
If N is exhausted, abort all pending requests and close the connection eagerly (fine to wait for grace period).
The text was updated successfully, but these errors were encountered:
Discussed here in detail: https://discord.com/channels/1087271586832318494/1087272728177942629/1222275984431251559
Today H2 pings work in tandem with the idle timeout to help the client discover bad connections quicker, assuming no other traffic in flight on that connection already. This coupling probably makes pings less useful than they could have been otherwise.
One quick improvement that we make is to provide an optional knob for users to configure their clients to proactively (and less gracefully) tear down connections for which the ACK to ping (the pong?) didn't arrive in time. This decision should be made irregardless to what idle timeout is doing today.
This is how a similar idea is implemented in Finagle (ref).
The rough semantics I'm suggesting for the new functionality are:
pingTimeout
.pingAckTimeout
try again for N times (configurable).The text was updated successfully, but these errors were encountered: