RFR: 8239559: Cgroups v2: Incorrect detection logic on some systems

Severin Gehwolf sgehwolf at redhat.com
Fri Feb 21 13:32:07 UTC 2020


Could I please get a review of this fix to the detection heuristic of
cgroup v1 vs cgroup v2? Matthias (in CC) discovered that on some old
systems the JDK Metrics code throws InternalError caused by wrong
detection logic when Metrics are being created on Linux.

The reason for this is that hierarchy IDs of 0 in /proc/cgroups is
being used as a heuristic to detect cgroups v2 systems. Apparently some
old systems like RHEL 6 and SLES 11 have no cgroups controllers
mounted, thus, triggering a false positive.

The fix is to also look at /proc/self/mountinfo and correct logic in
this case.

Bug: https://bugs.openjdk.java.net/browse/JDK-8239559
webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8239559/01/webrev/

Testing: docker/cgroups tests on hybrid (cgroups v1) and unified
hierarchy (cgroups v2). New regression test. Looks good here.

Unfortunately, I wasn't able to reproduce this on an actual affected
system. I somewhat reproduced via the derived regression test based on
data from reporters. I'd appreciate any testing on systems where this


More information about the core-libs-dev mailing list