Similar issue to the hotspot change discussed in 
https://bugs.openjdk.org/browse/JDK-8293472. The Java metrics implementation 
may get the resource limits wrong if there are additional cgroup fs mounts. 
Apparently that's more common than one might think. I've reproduced this with 
these existing tests on cg v2:


test/hotspot/jtreg/containers/docker/TestMemoryAwareness.java
test/jdk/jdk/internal/platform/docker/TestDockerCpuMetrics.java
test/jdk/jdk/internal/platform/docker/TestDockerMemoryMetrics.java 


I've also added `test/jdk/jdk/internal/platform/docker/TestDockerBasic.java` 
and amended 
`test/jdk/jdk/internal/platform/cgroup/TestCgroupSubsystemFactory.java` which 
unconditionally fails (irrespective of cgroup version in use). The fix is 
fairly straight forward and is an extension which we already do for the 
`cpuset` controller: Allow duplicates, and if there are any prefer those 
mounted at `/sys/fs/cgroup`.

Testing:
- [x] fastdebug build on cgroups v2 and cgroups v1 (before and after the 
product fix)
- [x] added tests fail before, pass after the product fix.
- [x] Some manual testing using `cgcreate` and `cgexec` on cg1 and cg2. Still 
pass. 
- [ ] GHA still running.

Please review! Many thanks in advance.

-------------

Depends on: https://git.openjdk.org/jdk/pull/10193

Commit messages:
 - 8293540: [Metrics] Potentially incorrectly detected ressource limits with 
additional cgroup fs mounts

Changes: https://git.openjdk.org/jdk/pull/10248/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=10248&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8293540
  Stats: 175 lines in 6 files changed: 137 ins; 23 del; 15 mod
  Patch: https://git.openjdk.org/jdk/pull/10248.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10248/head:pull/10248

PR: https://git.openjdk.org/jdk/pull/10248

Reply via email to