[hotfix-1.84] fix(request): detect stalled HTTP/2 sessions via PING health check#2985
Conversation
Replace the fixed ping interval with a Go-style read-idle timer: the heartbeat only sends a PING when the session has been quiet, and cancels the session if the PONG does not arrive in time. This bounds watch establishment and detects half-open connections that previously stalled the Shoot cache silently. Rename pingInterval to readIdleTimeout and add pingTimeout. Expose KUBE_CLIENT_READ_IDLE_TIMEOUT and KUBE_CLIENT_PING_TIMEOUT (defaults 30000/15000 ms) and matching Helm values.
The watch client now relies on the read-idle heartbeat to detect stalled HTTP/2 sessions. The heartbeat sends at most one PING per session and cancels the session after pingTimeout when no PONG arrives. maxOutstandingPings only caps unacknowledged PING frames in Node and is no longer part of the liveness decision, so keeping a watch-specific override would be misleading.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
LGTM label has been added. DetailsGit tree hash: abde8aa43956afb5274da408ce5203b6561de57f |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: petersutter The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This is an automated cherry-pick of #2981
/assign grolu