Fix/cgroup2 bind mount shared cgroupns#5267
Open
xujihui1985 wants to merge 2 commits into
Open
Conversation
9a08cc5 to
922bd42
Compare
Contributor
Author
5c685ee to
0b7a122
Compare
kolyshkin
reviewed
May 18, 2026
0b7a122 to
9653c5c
Compare
1360929 to
491bf97
Compare
Contributor
Author
|
Hi @kolyshkin would you like to move forward with this PR? |
491bf97 to
c8ed922
Compare
lifubang
requested changes
Jun 9, 2026
kolyshkin
reviewed
Jun 9, 2026
kolyshkin
left a comment
Contributor
There was a problem hiding this comment.
Forgot to submit pending review comments, my bad.
Overall it's almost ready.
3786615 to
3d9d5a7
Compare
Contributor
Author
|
@lifubang @kolyshkin I have moved the checkpoint-related commit into a new PR: #5318, and fixed the other review suggestions. |
3d9d5a7 to
0a1029c
Compare
kolyshkin
reviewed
Jun 24, 2026
| // Emulate cgroupns by bind-mounting the container cgroup path | ||
| // rather than the whole /sys/fs/cgroup. | ||
| bindM.Source = c.cgroup2Path | ||
| } else { |
Contributor
There was a problem hiding this comment.
I'm not quite sure about this else wrt cgroup2Path -- do we only need to add MS_PRIVATE if there's no cgroupNS AND the cgroup2Path is not set?
Contributor
Author
There was a problem hiding this comment.
yes, you are right, MS_PRIVATE is mainly needed for the host cgroup namespace bind-mount case
kolyshkin
reviewed
Jun 24, 2026
0a1029c to
b76157e
Compare
When cgroup namespaces is host, mounting a new cgroup2 fs instance for /sys/fs/cgroup can affect the host-visible cgroupfs mount state, including options such as nsdelegate. Avoid that by preferring a bind mount of the existing cgroup v2 hierarchy when cgroupns is host. Keep the existing cgroup2 mount-first logic for private cgroup namespaces, including the EPERM/EBUSY fallback to a bind mount and the rootless ENOENT masking behavior. Signed-off-by: sean <xujihui1985@gmail.com>
in host cgroupns, mount cgroupfs should not mutate the global superblock mount options, the test is to check when create container with host cgroupns, it should not mutate the global superblock options of host cgroupfs Signed-off-by: sean <xujihui1985@gmail.com>
b76157e to
6c3174f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When cgroup namespaces is host, mounting a new cgroup2 fs instance for /sys/fs/cgroup can affect the host-visible cgroupfs mount state, including options such as nsdelegate.
Avoid that by preferring a bind mount of the existing cgroup v2 hierarchy when cgroupns is host. Keep the existing cgroup2 mount-first logic for private cgroup namespaces, including the EPERM/EBUSY fallback to a bind mount and the rootless ENOENT masking behavior.
this PR fix issue #5258