RFR: 8253435: Cgroup: 'stomping of _mount_path' crash if manually mounted cpusets exist

Bob Vandette bob.vandette at oracle.com
Tue Sep 22 14:59:16 UTC 2020


Yuk.  I just fixed a bug which caused us to use the mount source for the cgroup type.  Not fixing
that bug would have hidden your problem.

Are there any hints in /proc/self/cgroup or /proc/self/mounts that we could use to eliminate this manual mount?

I’d be tempted to eliminate mountinfo entries that are 1) duplicate controllers and 2) not in “/sys/fs/cgroup” mount point.

Bob.

> On Sep 22, 2020, at 7:18 AM, Volker Simonis <simonis at openjdk.java.net> wrote:
> 
> Hi,
> 
> can I please have a review (or an idea for a better fix) for this PR?
> 
> If a tool like [cpuset](https://github.com/lpechacek/cpuset) is used to manually create and manage
> [cpusets](https://man7.org/linux/man-pages/man7/cpuset.7.html) the cgroups detections will be confused and crash in a
> debug build or behave unexpectedly in a product build.
> 
> The problem is that the additionally mounted cpuset will be interpreted as if it was belonging to Cgroup controller:
> $ grep cgroup /proc/self/mountinfo
> 36 25 0:30 / /sys/fs/cgroup ro,nosuid,nodev,noexec shared:9 - tmpfs tmpfs ro,mode=755
> 49 36 0:43 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:23 - cgroup cgroup rw,memory
> 50 36 0:44 / /sys/fs/cgroup/rdma rw,nosuid,nodev,noexec,relatime shared:24 - cgroup cgroup rw,rdma
> ...
> 43 36 0:37 / /sys/fs/cgroup/cpuset rw,nosuid,nodev,noexec,relatime shared:17 - cgroup cgroup rw,cpuset
> 121 32 0:37 / /cpusets rw,relatime shared:69 - cgroup none rw,cpuset
> The current fix solves this problem for manually created cpusets which don't have a "mount source" but this is yet
> another heuristic. I'm open to better solutions for detecting cpusets which don't don't belong to a Cgroup.
> 
> Thanks,
> Volker
> 
> -------------
> 
> Commit messages:
> - 8253435: Cgroup: 'stomping of _mount_path' crash if manually mounted cpusets exist
> 
> Changes: https://git.openjdk.java.net/jdk/pull/295/files
> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=295&range=00
>  Issue: https://bugs.openjdk.java.net/browse/JDK-8253435
>  Stats: 8 lines in 1 file changed: 7 ins; 0 del; 1 mod
>  Patch: https://git.openjdk.java.net/jdk/pull/295.diff
>  Fetch: git fetch https://git.openjdk.java.net/jdk pull/295/head:pull/295
> 
> PR: https://git.openjdk.java.net/jdk/pull/295



More information about the hotspot-runtime-dev mailing list