Cgroup v2 bug: "domain invalid" node can't be converted to "threaded"

From: Michael Kerrisk (man-pages)
Date: Fri Sep 21 2018 - 09:18:39 EST


Hello Tejun,

While experimenting with cgroups, we've found what looks to be a bug.
I eventually simplified this to what I think are the minimum steps to
demonstrate the issue.

The following shell session demonstrates the issue:

[Kernel was booted with cgroup_no_v1=all]
# cd /sys/fs/cgroup/unified
# cat cgroup.subtree_control # show that no controllers are enabled

# mkdir -p mycgrp/a/b/c
# echo threaded > mycgrp/a/b/cgroup.type

At this point, the hierarchy looks as follows:

mycgrp [d]
a [dt]
b [t]
c [inv]

Now let's make node "a" threaded (and thus "mycgrp" s made "domain threaded"):

# echo threaded > mycgrp/a/cgroup.type

By this point, we now have a hierarchy that looks as follows:

mycgrp [dt]
a [t]
b [t]
c [inv]

But, when we try to convert the node "c" from "domain invalid" to
"threaded", we get ENOTSUP on the write():

# echo threaded > mycgrp/a/b/c/cgroup.type
sh: echo: write error: Operation not supported

Your thoughts?

Thanks,

Michael

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/