Do not create cgroup dir name from combining subsystems
On some systems, when we mount some cgroup subsystems into a same mountpoint, the name sequence of mount options and cgroup directory name can not be the same. For example, the mount option is cpuacct,cpu, but mountpoint name is /sys/fs/cgroup/cpu,cpuacct. In current runc, we set mount destination name from combining subsystems, which comes from mount option from /proc/self/mountinfo, so in my case the name would be /sys/fs/cgroup/cpuacct,cpu, which is differernt from host, and will break some applications. Fix it by using directory name from host mountpoint. Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
This commit is contained in:
parent
eedebb8c40
commit
0599ac7d93
|
@ -346,7 +346,7 @@ func getCgroupMounts(m *configs.Mount) ([]*configs.Mount, error) {
|
|||
binds = append(binds, &configs.Mount{
|
||||
Device: "bind",
|
||||
Source: filepath.Join(mm.Mountpoint, relDir),
|
||||
Destination: filepath.Join(m.Destination, strings.Join(mm.Subsystems, ",")),
|
||||
Destination: filepath.Join(m.Destination, filepath.Base(mm.Mountpoint)),
|
||||
Flags: syscall.MS_BIND | syscall.MS_REC | m.Flags,
|
||||
PropagationFlags: m.PropagationFlags,
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue