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