On Tue, 1 Oct 2024 16:23:41 GMT, Severin Gehwolf <sgehw...@openjdk.org> 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

Reply via email to