On Sun, 12 May 2019 21:20:12 -0400, "Alex Xu (Hello71)" said: > I bisected this to 76f969e, "cgroup: cgroup v2 freezer". I reverted the > entire patchset (reverting only that one caused a conflict), which > resolved the issue. I skimmed the patch and came up with this > workaround, which also resolves the issue. I am not at all clear on the > technical workings of the patchset, but it seems to me like a process's > frozen status is supposed to be "suspended" when a frozen process is > ptraced, and "unsuspended" when ptracing ends. Therefore, it seems > suspicious to always "enter frozen" whether or not the cgroup is > actually frozen. It seems like the code should instead check if the > cgroup is actually frozen, and if so, restore the frozen status.
Your analysis seems to be more or less correct, especially since your one-line workaround patch makes things start working again. > - cgroup_enter_frozen(); > + //cgroup_enter_frozen(); However, I'm sure this isn't a proper fix - it needs an if statement guarding it (or a check inside the function). If the kernel is ever in a state where it *should* be frozen, and it doesn't freeze, things will misbehave. One has to wonder how many things would be different if the ptrace() system call wasn't such a steaming pile of dingo's kidneys....
pgp0Rh0j0YGgd.pgp
Description: PGP signature