Hi everyone,

Many container tests verify that various resource limits work as expected. 
However, when running containers in rootless mode on both Docker and Podman 
with cgroup v1, resource limits are not supported. This causes tests to fail 
with error messages like: `Resource limits are not supported and ignored on 
cgroups V1 rootless systems`.

To address this, we should skip these tests when running on configurations that 
don't support resource limits, similar to how we already handle other 
unsupported configurations (e.g., missing container engine or incompatibility 
with a specific cgroup version or container runtime).

To check for this, we now need to use `Metrics.systemMetrics().getProvider()` 
from `jdk.internal.platform.Metrics` to detect cgroup v1. I've added this 
functionality to `DockerTestUtils`, which is already used by all container 
tests. As a result, all container tests now need to include the 
`java.base/jdk.internal.platform` module, even if they don't directly test 
resource limits.

Testing:
* Oracle tiers 1-5
* Local testing:
  - `hotspot/jtreg/containers/` 
  - `jdk/jdk/internal/platform/docker/`
on cgroup v1/v2 with Podman and Docker in both rootful and rootless 
configurations

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

Commit messages:
 - resource limit availability checks on container tests

Changes: https://git.openjdk.org/jdk/pull/28557/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28557&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8372615
  Stats: 63 lines in 21 files changed: 32 ins; 5 del; 26 mod
  Patch: https://git.openjdk.org/jdk/pull/28557.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28557/head:pull/28557

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

Reply via email to