-
Notifications
You must be signed in to change notification settings - Fork 40k
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
vendor: bump runc to 1.0.2 #104528
vendor: bump runc to 1.0.2 #104528
Conversation
For the complete release notes, see - https://github.com/opencontainers/runc/releases/tag/v1.0.2 In particular, this fixes the check cgroup v1 systemd manager check if a container needs to be frozen before Set(), and adds a knob to skip the check/freeze entirely (to be used by the next commit). Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This is a knob added by runc 1.0.2 specifically for kubernetes, which tells runc/libcontainer/cgroups/systemd v1 manager to not freeze the cgroup in Set(). We set this knob here because this code is only used for pods (rather than containers) management, and in this place we create or update the pod cgroup with no device limits set, so we can skip the freeze. If this knob is not set, libcontainer's cgroup v1 manager tries to figure out whether the freeze is needed or not, but it's a somewhat expensive check to perform, thus the knob is a shortcut. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Hi @kolyshkin. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
/ok-to-test |
/test pull-kubernetes-integration |
/pull pull-kubernetes-node-crio-e2e |
/test pull-kubernetes-node-crio-e2e |
@@ -379,7 +379,8 @@ func getSupportedUnifiedControllers() sets.String { | |||
|
|||
func (m *cgroupManagerImpl) toResources(resourceConfig *ResourceConfig) *libcontainerconfigs.Resources { | |||
resources := &libcontainerconfigs.Resources{ | |||
SkipDevices: true, | |||
SkipDevices: true, | |||
SkipFreezeOnSet: true, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we also set up libcontainerconfigs.Resources
and set SkipDevices: true
in these places:
kubernetes/pkg/kubelet/cm/container_manager_linux.go
Lines 397 to 399 in b40d9e8
Resources: &configs.Resources{ | |
SkipDevices: true, | |
}, |
kubernetes/pkg/kubelet/dockershim/cm/container_manager_linux.go
Lines 125 to 129 in b40d9e8
Resources: &configs.Resources{ | |
Memory: int64(memoryLimit), | |
MemorySwap: -1, | |
SkipDevices: true, | |
}, |
should those set this new option as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No (I should have explained it earlier but didn't know where to).
The reason is, SkipFreezeOnSet
only makes sense for systemd v1 manager, and is ignored otherwise. In these two places you quoted we use fs[2] manager, i.e. no systemd involved.
In other words, it wouldn't hurt to set it, but it's useless (and may be misleading for those who read the code later).
/test pull-kubernetes-node-crio-cgrpv2-e2e |
/test pull-kubernetes-node-crio-e2e |
/test pull-kubernetes-node-crio-cgrpv2-e2e |
ok /approve Will leave lgtm to node reviewer. Is it expected that CI job is failing? |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: kolyshkin, liggitt 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 |
/lgtm This needs a release note tho, so holding for that.
Hmm. Looks like it is flaking.. Strange. It is however running on cgroup v2, and that is still "experimenta" since we doesn't have any good CI signals for it. /test pull-kubernetes-node-crio-cgrpv2-e2e And some others, just to check: /test pull-kubernetes-node-kubelet-serial-crio-cgroupv1 |
@kolyshkin: The following tests failed, say
Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR. 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 understand the commands that are listed here. |
The crio cgroups v2 test failure is a known problem. @harche Did we have an issue for it? |
release note added |
What type of PR is this?
/kind bug
What this PR does / why we need it:
This bumps runc to 1.0.2. For the complete release notes, see https://github.com/opencontainers/runc/releases/tag/v1.0.2
In particular, this fixes the check cgroup v1 systemd manager check
if a container needs to be frozen before Set(), and adds a knob to
skip the check/freeze entirely (used from this PR).
Which issue(s) this PR fixes:
Fixes #104280
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:
None