On Tue, 1 Oct 2024 16:23:41 GMT, Severin Gehwolf <[email protected]> wrote:
> PTAL @slovdahl Thanks!
@jerboaa Thanks a lot for the thorough investigation here!
I was also able to reproduce the failure locally on my Ubuntu 24.04 using
`podman` (that runs containers as a regular user):
sudo apt install podman
make test
TEST="jtreg:test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java"
JTREG="JAVA_OPTIONS=-Djdk.test.container.command=podman"
...
STDERR:
java.lang.RuntimeException: ACCESS_TMP_VIA_PROC_ROOT: Could not find specified
process
at TestJcmdWithSideCar.testCase01(TestJcmdWithSideCar.java:138)
at TestJcmdWithSideCar.main(TestJcmdWithSideCar.java:111)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:573)
at
com.sun.javatest.regtest.agent.MainActionHelper$AgentVMRunnable.run(MainActionHelper.java:333)
at java.base/java.lang.Thread.run(Thread.java:1576)
...
==============================
Test summary
==============================
TEST TOTAL PASS FAIL ERROR
jtreg:test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java
>> 1 0 1 0 <<
==============================
Whereas with `docker` (that runs containers as `root` by default) the test
passes:
make test
TEST="jtreg:test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java"
JTREG="JAVA_OPTIONS=-Djdk.test.container.command=docker"
==============================
Test summary
==============================
TEST TOTAL PASS FAIL ERROR
jtreg:test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java
1 1 0 0
==============================
With `podman` and the changes in this PR, the test works again.
> While at it, I've discovered that the EventGeneratorLoop running container
> always runs for a fixed time: 30 seconds. That's irrespective of the attacher
> containers being done. Therefore, two iterations of the loop spawning this
> container running the fixed set of time will at least run 60 seconds.
Thanks for trying to improve this too, it was quite annoying to have to wait so
long for each test run.. đ
However, when I'm running the test with `docker` with the changes from this PR
(`make test
TEST="jtreg:test/hotspot/jtreg/containers/docker/TestJcmdWithSideCar.java"
JTREG="JAVA_OPTIONS=-Djdk.test.container.command=docker"`) I get a new failure:
[docker-failure.log](https://github.com/user-attachments/files/17227971/docker-failure.log).
If I revert the test runtime optimization (and keep the disabling part) the
test works with `docker` again.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21289#issuecomment-2388301598