Skip to content

[hotfix-1.84] fix(request): detect stalled HTTP/2 sessions via PING health check#2985

Merged
gardener-prow[bot] merged 3 commits into
gardener:hotfix-1.84from
gardener-ci-robot:cherry-pick-2981-to-hotfix-1.84
May 26, 2026
Merged

[hotfix-1.84] fix(request): detect stalled HTTP/2 sessions via PING health check#2985
gardener-prow[bot] merged 3 commits into
gardener:hotfix-1.84from
gardener-ci-robot:cherry-pick-2981-to-hotfix-1.84

Conversation

@gardener-ci-robot
Copy link
Copy Markdown
Contributor

@gardener-ci-robot gardener-ci-robot commented May 26, 2026

This is an automated cherry-pick of #2981

/assign grolu

Detect stalled HTTP/2 sessions used by the kube-client via a Go-style read-idle / ping-timeout heartbeat. Previously a half-open session was never torn down, which could leave streams hanging indefinitely. Configurable via `KUBE_CLIENT_READ_IDLE_TIMEOUT` / `KUBE_CLIENT_PING_TIMEOUT` env vars and the matching `global.dashboard.kubeClient.readIdleTimeout` / `pingTimeout` Helm values.

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.
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 26, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: fb972732-acaf-4f07-b245-7e79fb1e6d89

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gardener-prow gardener-prow Bot added cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 26, 2026
Copy link
Copy Markdown
Member

@petersutter petersutter left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm
/approve

@gardener-prow gardener-prow Bot added the lgtm Indicates that a PR is ready to be merged. label May 26, 2026
@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented May 26, 2026

LGTM label has been added.

DetailsGit tree hash: abde8aa43956afb5274da408ce5203b6561de57f

@gardener-prow
Copy link
Copy Markdown

gardener-prow Bot commented May 26, 2026

[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

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@gardener-prow gardener-prow Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 26, 2026
@gardener-prow gardener-prow Bot merged commit 75d92ce into gardener:hotfix-1.84 May 26, 2026
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/robustness Robustness, reliability, resilience related cla: yes Indicates the PR's author has signed the cla-assistant.io CLA. kind/bug Bug lgtm Indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants