Skip to content

OCPBUGS-83817: Fix orphaned shell processes in pod terminal on WebSocket disconnect#16307

Merged
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
Leo6Leo:fix-orphaned-terminal-processes-main
Jul 1, 2026
Merged

OCPBUGS-83817: Fix orphaned shell processes in pod terminal on WebSocket disconnect#16307
openshift-merge-bot[bot] merged 3 commits into
openshift:mainfrom
Leo6Leo:fix-orphaned-terminal-processes-main

Conversation

@Leo6Leo

@Leo6Leo Leo6Leo commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • When a pod terminal WebSocket connection drops, the shell process inside the container was never terminated, leading to accumulation of orphaned sh processes
  • Root cause: gorilla/websocket's Close() only drops the TCP connection without sending a WebSocket close frame, and no exit command was sent to the shell on disconnect
  • Fix: send exit through the exec STDIN channel and a proper WebSocket close frame to the Kubernetes API server when the proxy connection closes
  • Use a dedicated backendWriteMutex to prevent concurrent writes to the backend connection (gorilla/websocket's one-writer contract)
  • Check the negotiated subprotocol (base64.channel.k8s.io vs v4/v5.channel.k8s.io) to use the correct frame encoding

Details

The cleanup in componentWillUnmount (frontend) only runs when the user navigates away from the terminal page. When the WebSocket drops while the page stays loaded (e.g., load balancer idle timeout, network interruption), the shell process inside the container survives indefinitely. Each reconnection spawns a new shell, causing orphaned processes to accumulate. This is especially impactful for high-usage pods like DB2U.

The fix adds cleanup at the proxy layer (pkg/proxy/proxy.go), which handles all disconnect scenarios regardless of how the frontend behaves.

Test plan

  • Reproduced on live OpenShift 4.18 cluster — orphaned shells accumulate on each disconnect/reconnect
  • Reproduced on live OpenShift 4.21 cluster — same behavior confirmed
  • Verified fix on 4.18 cluster by running a local console bridge with the patch
  • Confirmed old shell process was terminated after WebSocket disconnect (ps aux via oc exec)
  • Confirmed reconnected terminal created a fresh shell process with no orphans
  • All existing proxy unit tests pass (go test ./pkg/proxy/)
  • CLI access (oc rsh / oc exec) unaffected (fix only targets /exec WebSocket path in the proxy)

Summary by CodeRabbit

  • Bug Fixes
    • Improved websocket connection cleanup and proper termination for remote execution sessions
    • Fixed potential race conditions in concurrent backend operations to enhance stability
    • Enhanced synchronization mechanisms to prevent connection conflicts and ensure reliable connections
    • Better support across different kubernetes websocket protocol implementations

…ket disconnect

When a terminal WebSocket connection drops, the shell process inside the
container was never terminated, leading to accumulation of orphaned
processes. This occurred because gorilla/websocket's Close() only drops
the TCP connection without sending a WebSocket close frame, and no exit
command was sent to the shell.

Send "exit" to the exec STDIN channel and a proper WebSocket close frame
to the Kubernetes API server when the proxy connection closes. Use a
dedicated backendWriteMutex to prevent concurrent writes to the backend
connection, and check the negotiated subprotocol to use the correct
frame encoding.
@openshift-ci-robot openshift-ci-robot added jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. labels Apr 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: This pull request references Jira Issue OCPBUGS-83817, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

Summary

  • When a pod terminal WebSocket connection drops, the shell process inside the container was never terminated, leading to accumulation of orphaned sh processes
  • Root cause: gorilla/websocket's Close() only drops the TCP connection without sending a WebSocket close frame, and no exit command was sent to the shell on disconnect
  • Fix: send exit through the exec STDIN channel and a proper WebSocket close frame to the Kubernetes API server when the proxy connection closes
  • Use a dedicated backendWriteMutex to prevent concurrent writes to the backend connection (gorilla/websocket's one-writer contract)
  • Check the negotiated subprotocol (base64.channel.k8s.io vs v4/v5.channel.k8s.io) to use the correct frame encoding

Details

The cleanup in componentWillUnmount (frontend) only runs when the user navigates away from the terminal page. When the WebSocket drops while the page stays loaded (e.g., load balancer idle timeout, network interruption), the shell process inside the container survives indefinitely. Each reconnection spawns a new shell, causing orphaned processes to accumulate. This is especially impactful for high-usage pods like DB2U.

The fix adds cleanup at the proxy layer (pkg/proxy/proxy.go), which handles all disconnect scenarios regardless of how the frontend behaves.

Test plan

  • Reproduced on live OpenShift 4.18 cluster — orphaned shells accumulate on each disconnect/reconnect
  • Reproduced on live OpenShift 4.21 cluster — same behavior confirmed
  • Verified fix on 4.18 cluster by running a local console bridge with the patch
  • Confirmed old shell process was terminated after WebSocket disconnect (ps aux via oc exec)
  • Confirmed reconnected terminal created a fresh shell process with no orphans
  • All existing proxy unit tests pass (go test ./pkg/proxy/)
  • CLI access (oc rsh / oc exec) unaffected (fix only targets /exec WebSocket path in the proxy)

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label Apr 20, 2026
@openshift-ci openshift-ci Bot requested review from TheRealJon and jhadvig April 20, 2026 18:26
@openshift-ci openshift-ci Bot added the component/backend Related to backend label Apr 20, 2026
@Leo6Leo

Leo6Leo commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: This pull request references Jira Issue OCPBUGS-83817, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: This pull request references Jira Issue OCPBUGS-83817, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Leo6Leo

Leo6Leo commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Apr 20, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: This pull request references Jira Issue OCPBUGS-83817, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: This pull request references Jira Issue OCPBUGS-83817, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Summary

  • When a pod terminal WebSocket connection drops, the shell process inside the container was never terminated, leading to accumulation of orphaned sh processes
  • Root cause: gorilla/websocket's Close() only drops the TCP connection without sending a WebSocket close frame, and no exit command was sent to the shell on disconnect
  • Fix: send exit through the exec STDIN channel and a proper WebSocket close frame to the Kubernetes API server when the proxy connection closes
  • Use a dedicated backendWriteMutex to prevent concurrent writes to the backend connection (gorilla/websocket's one-writer contract)
  • Check the negotiated subprotocol (base64.channel.k8s.io vs v4/v5.channel.k8s.io) to use the correct frame encoding

Details

The cleanup in componentWillUnmount (frontend) only runs when the user navigates away from the terminal page. When the WebSocket drops while the page stays loaded (e.g., load balancer idle timeout, network interruption), the shell process inside the container survives indefinitely. Each reconnection spawns a new shell, causing orphaned processes to accumulate. This is especially impactful for high-usage pods like DB2U.

The fix adds cleanup at the proxy layer (pkg/proxy/proxy.go), which handles all disconnect scenarios regardless of how the frontend behaves.

Test plan

  • Reproduced on live OpenShift 4.18 cluster — orphaned shells accumulate on each disconnect/reconnect
  • Reproduced on live OpenShift 4.21 cluster — same behavior confirmed
  • Verified fix on 4.18 cluster by running a local console bridge with the patch
  • Confirmed old shell process was terminated after WebSocket disconnect (ps aux via oc exec)
  • Confirmed reconnected terminal created a fresh shell process with no orphans
  • All existing proxy unit tests pass (go test ./pkg/proxy/)
  • CLI access (oc rsh / oc exec) unaffected (fix only targets /exec WebSocket path in the proxy)

Summary by CodeRabbit

  • Bug Fixes
  • Improved websocket connection cleanup and proper termination for remote execution sessions
  • Fixed potential race conditions in concurrent backend operations to enhance stability
  • Enhanced synchronization mechanisms to prevent connection conflicts and ensure reliable connections
  • Better support across different kubernetes websocket protocol implementations

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@Leo6Leo

Leo6Leo commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

/cherry-pick release-4.22

@openshift-cherrypick-robot

Copy link
Copy Markdown

@Leo6Leo: once the present PR merges, I will cherry-pick it on top of release-4.22 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-4.22

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@Leo6Leo

Leo6Leo commented Apr 20, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Apr 20, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This change modifies the WebSocket HTTP proxy handling in pkg/proxy/proxy.go to explicitly terminate exec sessions. When request paths end with /exec, the deferred cleanup now acquires a backendWriteMutex and invokes a new sendExecExitCommand() helper to write an "exit\r" message to the backend channel according to the negotiated WebSocket subprotocol. The cleanup additionally sends a WebSocket close control frame and closes the connection. A backendWriteMutex synchronizes backend writes to prevent race conditions between the exec exit command and concurrent backend-to-frontend copy operations. The sendExecExitCommand() helper constructs protocol-appropriate messages and logs debug output for unsupported subprotocols.

🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (9 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly references the Jira issue (OCPBUGS-83817) and accurately describes the main change: fixing orphaned shell processes on WebSocket disconnect.
Description check ✅ Passed The PR description provides comprehensive analysis, root cause, solution, test plan with checkmarks, and verification results, though some template sections (screenshots, browser conformance, reviewers) are not filled.
Stable And Deterministic Test Names ✅ Passed Pull request uses standard Go testing conventions instead of Ginkgo, making the Ginkgo-specific check not applicable to this codebase.
Test Structure And Quality ✅ Passed Custom check not applicable; PR uses standard Go testing package, not Ginkgo test framework.
Microshift Test Compatibility ✅ Passed Pull request modifies proxy.go with WebSocket cleanup logic but adds no new Ginkgo e2e tests; existing proxy_test.go contains only standard Go unit tests.
Single Node Openshift (Sno) Test Compatibility ✅ Passed PR modifies only pkg/proxy/proxy.go production code. No new Ginkgo e2e tests are added.
Topology-Aware Scheduling Compatibility ✅ Passed PR modifies only pkg/proxy/proxy.go, adding mutex synchronization and exit command handling for WebSocket /exec endpoints without introducing Kubernetes deployment manifests or topology-aware scheduling logic.
Ote Binary Stdout Contract ✅ Passed PR's new klog calls occur within request-handling code in ServeHTTP defer block, not process-level initialization. klog v2 defaults to stderr, which is exempted from OTE Binary Stdout Contract check.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed PR modifies only production code in pkg/proxy/proxy.go for WebSocket cleanup logic; no Ginkgo e2e tests are introduced.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

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

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/proxy/proxy.go`:
- Around line 260-265: The deferred cleanup grabs backendWriteMutex
unconditionally which can block forever if copyMsgs is stuck writing; change the
deferred closure in the function containing backendWriteMutex so it attempts to
acquire the lock with a bounded wait (spawn a goroutine that calls
backendWriteMutex.Lock() and signals on a channel, then select between that
channel and time.After(timeout)); if the lock isn't acquired within the timeout,
log a warning and proceed to call backend.Close() (and still try to
sendExecExitCommand in a non-blocking manner or drop it) to avoid stalling
disconnect; apply the same bounded-lock pattern wherever backendWriteMutex is
used in deferred teardown (e.g., around sendExecExitCommand in the defer and the
analogous case near line 309).
- Line 259: Normalize the request path before checking for the "/exec" suffix to
handle trailing-slash variants: compute a normalizedPath from r.URL.Path (e.g.,
trim trailing slashes or use path.Clean) and then set isExec by testing
strings.HasSuffix(normalizedPath, "/exec"); update the reference to r.URL.Path
where isExec is computed so the detection logic uses normalizedPath instead of
the raw r.URL.Path.
- Around line 335-345: The switch on backend.Subprotocol() in proxy.go currently
handles "base64.channel.k8s.io", "v4.channel.k8s.io", and "v5.channel.k8s.io"
but omits v2 and v3 so exec exit is skipped for those protocols; update the
switch to include "v2.channel.k8s.io" and "v3.channel.k8s.io" and treat them the
same as the "v4.channel.k8s.io"/"v5.channel.k8s.io" branch (i.e., set msg to
append([]byte{0}, []byte("exit\r")...) and msgType to websocket.BinaryMessage)
OR, if you intentionally restrict to v4+, add a clear comment and observable
log/error where backend.Subprotocol() is checked (the switch and the default
klog.V(4).Infof) documenting that only v4+ is supported so the behavior is
explicit.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 68d7e985-8731-4746-9550-c4d09c61ad53

📥 Commits

Reviewing files that changed from the base of the PR and between 4cc53f8 and f0249cd.

📒 Files selected for processing (1)
  • pkg/proxy/proxy.go

Comment thread pkg/proxy/proxy.go Outdated
Comment thread pkg/proxy/proxy.go
Comment thread pkg/proxy/proxy.go
@Leo6Leo

Leo6Leo commented Apr 21, 2026

Copy link
Copy Markdown
Contributor Author

/retest-required

1 similar comment
@Leo6Leo

Leo6Leo commented Apr 21, 2026

Copy link
Copy Markdown
Contributor Author

/retest-required

Leo6Leo and others added 2 commits April 28, 2026 15:06
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@logonoff

Copy link
Copy Markdown
Member

QA Verification Evidence

Details
Branch fix-orphaned-terminal-processes-main
Baseline main @ 1687e652ca
Candidate PR #16307 @ 9708ccad76
Verified 2026-05-11
Jira OCPBUGS-83817

Verification Steps

# Route Action Status
1 /dashboards Navigate, wait for load ✅ PASS
2 /k8s/ns/openshift-console/pods Navigate to pods list ✅ PASS
3 Pod detail page Click first running pod ✅ PASS
4 Pod terminal tab Click Terminal tab ✅ PASS

Before / After

Baseline (main) Candidate (PR #16307)

Evidence GIFs

Baseline Candidate

Notes

This PR modifies only pkg/proxy/proxy.go (backend Go code). The UI verification above confirms no visual regressions in the terminal workflow. The actual fix -- sending exit to the exec STDIN channel and a proper WebSocket close frame on disconnect -- cannot be fully verified through screenshots alone, as it requires simulating a WebSocket connection drop and inspecting processes inside a container.


Warning

This verification was performed by an AI agent. Results may contain false positives or miss
regressions that require human judgment. Always review the screenshots manually before approving.

Automated QA verification by Claude Code

@jhadvig

jhadvig commented Jul 1, 2026

Copy link
Copy Markdown
Member

/lgtm
/approve
/verified by @logonoff

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Jul 1, 2026
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@jhadvig: This PR has been marked as verified by @logonoff.

Details

In response to this:

/lgtm
/approve
/verified by @logonoff

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jul 1, 2026
@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jhadvig, Leo6Leo

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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 1, 2026
@jhadvig jhadvig added the plugin-api-approved Indicates a PR with plugin API changes has been approved by an API reviewer label Jul 1, 2026
@jhadvig

jhadvig commented Jul 1, 2026

Copy link
Copy Markdown
Member

/cherry-pick release-4.22

@openshift-cherrypick-robot

Copy link
Copy Markdown

@jhadvig: once the present PR merges, I will cherry-pick it on top of release-4.22 in a new PR and assign it to you.

Details

In response to this:

/cherry-pick release-4.22

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

@Leo6Leo: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot Bot merged commit 1cd576d into openshift:main Jul 1, 2026
8 checks passed
@openshift-ci-robot

Copy link
Copy Markdown
Contributor

@Leo6Leo: Jira Issue Verification Checks: Jira Issue OCPBUGS-83817
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-83817 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

Summary

  • When a pod terminal WebSocket connection drops, the shell process inside the container was never terminated, leading to accumulation of orphaned sh processes
  • Root cause: gorilla/websocket's Close() only drops the TCP connection without sending a WebSocket close frame, and no exit command was sent to the shell on disconnect
  • Fix: send exit through the exec STDIN channel and a proper WebSocket close frame to the Kubernetes API server when the proxy connection closes
  • Use a dedicated backendWriteMutex to prevent concurrent writes to the backend connection (gorilla/websocket's one-writer contract)
  • Check the negotiated subprotocol (base64.channel.k8s.io vs v4/v5.channel.k8s.io) to use the correct frame encoding

Details

The cleanup in componentWillUnmount (frontend) only runs when the user navigates away from the terminal page. When the WebSocket drops while the page stays loaded (e.g., load balancer idle timeout, network interruption), the shell process inside the container survives indefinitely. Each reconnection spawns a new shell, causing orphaned processes to accumulate. This is especially impactful for high-usage pods like DB2U.

The fix adds cleanup at the proxy layer (pkg/proxy/proxy.go), which handles all disconnect scenarios regardless of how the frontend behaves.

Test plan

  • Reproduced on live OpenShift 4.18 cluster — orphaned shells accumulate on each disconnect/reconnect
  • Reproduced on live OpenShift 4.21 cluster — same behavior confirmed
  • Verified fix on 4.18 cluster by running a local console bridge with the patch
  • Confirmed old shell process was terminated after WebSocket disconnect (ps aux via oc exec)
  • Confirmed reconnected terminal created a fresh shell process with no orphans
  • All existing proxy unit tests pass (go test ./pkg/proxy/)
  • CLI access (oc rsh / oc exec) unaffected (fix only targets /exec WebSocket path in the proxy)

Summary by CodeRabbit

  • Bug Fixes
  • Improved websocket connection cleanup and proper termination for remote execution sessions
  • Fixed potential race conditions in concurrent backend operations to enhance stability
  • Enhanced synchronization mechanisms to prevent connection conflicts and ensure reliable connections
  • Better support across different kubernetes websocket protocol implementations

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-cherrypick-robot

Copy link
Copy Markdown

@Leo6Leo: new pull request created: #16694

Details

In response to this:

/cherry-pick release-4.22

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-merge-robot

Copy link
Copy Markdown
Contributor

Fix included in release 5.0.0-0.nightly-2026-07-01-190408

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. component/backend Related to backend jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. plugin-api-approved Indicates a PR with plugin API changes has been approved by an API reviewer verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants