New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kubelet: Do not mutate pods in the pod manager #116482
Conversation
The pod manager is a cache and modifying objects returned from the pod manager can cause race conditions in the Kubelet. In this case, it causes static pod status from the mirror pod to leak back to the config source, which means a static pod whose mirror pod is set to a terminal phase (succeeded or failed) cannot restart.
@smarterclayton: The label(s) In response to this:
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/test-infra repository. |
I may need to add a test for this, I'm testing it in #116479 which suggested this may be an issue. |
/priority critical-urgent |
Is it a regression? |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: smarterclayton, Tusenka The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This regressed whenever this was introduced (mutating the cache), but is not a change in 1.27. |
/triage accepted |
/lgtm |
LGTM label has been added. Git tree hash: a4d1277516d8409766d0cb5e9dc2e4fafc0c59a5
|
The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass. This bot retests PRs for certain kubernetes repos according to the following rules:
You can:
/retest |
1 similar comment
The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass. This bot retests PRs for certain kubernetes repos according to the following rules:
You can:
/retest |
It should be cherry-picked to v1.24~v1.27. /retest-required |
The Kubernetes project has merge-blocking tests that are currently too flaky to consistently pass. This bot retests PRs for certain kubernetes repos according to the following rules:
You can:
/retest |
…of-#116482-upstream-release-1.27 Automated cherry pick of #116482: kubelet: Do not mutate pods in the pod manager
…of-#116482-upstream-release-1.26 Automated cherry pick of #116482: kubelet: Do not mutate pods in the pod manager
…of-#116482-upstream-release-1.25 Automated cherry pick of #116482: kubelet: Do not mutate pods in the pod manager
…of-#116482-upstream-release-1.24 Automated cherry pick of #116482: kubelet: Do not mutate pods in the pod manager
The pod manager is a cache and modifying objects returned from the pod manager can cause race conditions in the Kubelet. In this case, it causes static pod status from the mirror pod to leak back to the config source, which means a static pod whose mirror pod is set to a terminal phase (succeeded or failed) cannot restart.
/kind bug
/sig node
/priority critical-urgent