On Wed, 2 Oct 2024 18:46:07 GMT, Severin Gehwolf <sgehw...@openjdk.org> wrote:

>> The change of [JDK-8327114](https://bugs.openjdk.org/browse/JDK-8327114) 
>> also increased test coverage. In particular, the `TestJcmdWithSideCar.java` 
>> test got enhanced to cover these cases (prior to 
>> [JDK-8327114](https://bugs.openjdk.org/browse/JDK-8327114) only case 1 was 
>> tested):
>> 
>> 1. Shared volumes between attachee and attacher and shared pid namespace
>> 2. Shared volumes between attachee and attacher and shared pid namespace, 
>> both running with elevated privileges
>> 3. Shared pid namespace between attachee and attacher only
>> 4. Shared pid namespace between attachee and attacher, both running with 
>> elevated privileges
>> 
>> The OpenJDK attach code is able to handle cases 1 through 3 which pass, but 
>> the last case, `4`, hasn't been implemented yet when running as regular user 
>> and directing the container runtime to map the container user to that user 
>> as well. Thus, the test fails. For now I propose to disable the 4th test 
>> case. It can get re-enabled once the product code got updated to account for 
>> this case (tracked in https://bugs.openjdk.org/browse/JDK-8341349).
>> 
>> Thoughts? Could somebody please run this through Oracle's test system in 
>> order to see if this fixes the issue? Thank you!
>
> Severin Gehwolf has updated the pull request incrementally with two 
> additional commits since the last revision:
> 
>  - Revert "Improve runtime of test"
>    
>    This reverts commit 5b2f646c73b747f6fff364347031074d24e49822.
>  - Revert "Remove the attachee container if it exists"
>    
>    This reverts commit ef7abf249268c30f726bee19dde3337d92c6493d.

Good timing, I was just writing:

Thanks, looks good.  Good to delay the additional changes.
Would be great if you can change the bug and PR title to something like:
8341310: Test TestJcmdWithSideCar.java should skip ACCESS_TMP_VIA_PROC_ROOT 
(after JDK-8327114)
(Multiple "test fails after..." bugs are confusing to me at least!)

With the test as it stands in the repo currently, I am seeing another failure.  
I don't get this myself with the change in this PR, but that may just be luck.  

It's on Linux x64, with TMP_MOUNTED_INTO_SIDECAR, where the command:

docker run --tty=true --rm --cap-add=SYS_PTRACE --sig-proxy=true 
--pid=container:test-container-main --cap-add=NET_BIND_SERVICE 
--user=10668:10668 --volumes-from test-container-main 
jdk-internal:test-containers-docker-TestJcmdWithSideCar-jfr-jcmd /jdk/bin/jcmd 
-l 

...gets no output, where a good run would show:

[STDOUT]
1 EventGeneratorLoop 120
24 jdk.jcmd/sun.tools.jcmd.JCmd -l

e.g.


[main-container-process] MAIN_METHOD_STARTED, argument is 120
Attach strategy TMP_MOUNTED_INTO_SIDECAR
[COMMAND]
docker run --tty=true --rm --cap-add=SYS_PTRACE --sig-proxy=true 
--pid=container:test-container-main --cap-add=NET_BIND_SERVICE 
--user=10668:10668 --volumes-from test-container-main 
jdk-internal:test-containers-docker-TestJcmdWithSideCar-jfr-jcmd /jdk/bin/jcmd 
-l 
[2024-10-03T04:30:35.273416534Z] Gathering output for process 12125
[ELAPSED: 1068 ms]
[STDERR]

[STDOUT]

Full child process STDOUT was saved to docker-stdout-12125.log
[2024-10-03T04:30:36.341378706Z] Waiting for completion for process 12125
[2024-10-03T04:30:36.341534140Z] Waiting for completion finished for process 
12125
[COMMAND]
docker rmi --force 
jdk-internal:test-containers-docker-TestJcmdWithSideCar-jfr-jcmd 
[2024-10-03T04:30:36.349399928Z] Gathering output for process 12260
[ELAPSED: 27 ms]
[STDERR]

[STDOUT]
Untagged: jdk-internal:test-containers-docker-TestJcmdWithSideCar-jfr-jcmd

Full child process STDOUT was saved to docker-stdout-12260.log
----------System.err:(16/748)----------
 stdout: [];
 stderr: []
 exitValue = 0

java.lang.RuntimeException: 'sun.tools.jcmd.JCmd' missing from stdout/stderr
        at 
jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:253)
        at TestJcmdWithSideCar.testCase01(TestJcmdWithSideCar.java:135)
        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)

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

PR Comment: https://git.openjdk.org/jdk/pull/21289#issuecomment-2391093691

Reply via email to