cgroups: Join groups by writing to cgroups.procs, not tasks
cgroups.procs moves all the threads of the process, and "tasks" just the one thread. I believe there is a risk that we move the main thread, but then we accidentally fork off one of the other threads if the go scheduler randomly switched to another thread. So, it seems safer (and more correct) to use cgroups.procs. Docker-DCO-1.1-Signed-off-by: Alexander Larsson <alexl@redhat.com> (github: alexlarsson)
This commit is contained in:
parent
fce532280b
commit
7cd539bc3d
1 changed files with 1 additions and 1 deletions
|
@ -68,7 +68,7 @@ func (raw *rawCgroup) join(subsystem string, pid int) (string, error) {
|
||||||
if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
|
if err := os.MkdirAll(path, 0755); err != nil && !os.IsExist(err) {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if err := writeFile(path, "tasks", strconv.Itoa(pid)); err != nil {
|
if err := writeFile(path, "cgroup.procs", strconv.Itoa(pid)); err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return path, nil
|
return path, nil
|
||||||
|
|
Loading…
Reference in a new issue