RFR: 8377729: Running jtreg tests with -agent... option causes some tests to fail due to duplicate -agent options provided to a subprocess

Leonid Mesnik lmesnik at openjdk.org
Thu Feb 12 04:54:06 UTC 2026


On Thu, 12 Feb 2026 03:22:57 GMT, Kirill Shirokov <kshiroko at openjdk.org> wrote:

> The fix removes duplicate `-agent...` and `-javaagent:...` options from test subprocess command line, thus allowing to run jtreg tests with agents that should be specified only once.
> 
> The fix tested manually:
> 
> 
> $ make test JTREG="VERBOSE=summary,fail,error" TEST="test/jdk/sun/tools/jstack/DeadlockDetectionTest.java test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java test/hotspot/jtreg/gc/g1/ihop/TestIHOPStatic.java"
> 
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR  SKIP
>    jtreg:test/jdk/sun/tools/jstack/DeadlockDetectionTest.java
>                                                          1     1     0     0     0
>    jtreg:test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java
>                                                          1     1     0     0     0
>    jtreg:test/hotspot/jtreg/gc/g1/ihop/TestIHOPStatic.java
>                                                          1     1     0     0     0
> ==============================
> TEST SUCCESS
> 
> $ make test JTREG="VERBOSE=summary,fail,error;JAVA_OPTIONS=-agentpath.../async-profiler-binaries/lib/libasyncProfiler.dylib=start,event=cpu,cstack=vm,loglevel=none,flat,file=/dev/null" TEST="test/jdk/sun/tools/jstack/DeadlockDetectionTest.java test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java test/hotspot/jtreg/gc/g1/ihop/TestIHOPStatic.java"
> 
> ==============================
> Test summary
> ==============================
>    TEST                                              TOTAL  PASS  FAIL ERROR  SKIP
>    jtreg:test/jdk/sun/tools/jstack/DeadlockDetectionTest.java
>>>                                                       1     0     1     0     0 <<
>    jtreg:test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java
>>>                                                       1     0     1     0     0 <<
>    jtreg:test/hotspot/jtreg/gc/g1/ihop/TestIHOPStatic.java
>>>                                                       1     0     1     0     0 <<
> ==============================
> TEST FAILURE
> 
> $ make test JTREG="VERBOSE=summary,fail,error;VM_OPTIONS=-agentpath:.../async-profiler-binaries/lib/libasyncProfiler.dylib=start,event=cpu,cstack=vm,loglevel=none,flat,file=/dev/null" TEST="test/jdk/sun/tools/jstack/DeadlockDetectionTest.java test/hotspot/jtreg/compiler/jvmci/events/JvmciShutdownEventTest.java test/hotspot/jtreg/gc/g1/ihop/TestIHOPStatic.java"
> 
> (same errors)
> 
> With th...

Changes requested by lmesnik (Reviewer).

test/lib/jdk/test/lib/apps/LingeredApp.java line 49:

> 47: import jdk.test.lib.Utils;
> 48: import jdk.test.lib.process.OutputBuffer;
> 49: import jdk.test.lib.process.ProcessTools;

I don't think that it is good idea to deduplicate options in ProcessTools.

Better to fix the tests that duplicate options rather then try to deduplicate all options.

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

PR Review: https://git.openjdk.org/jdk/pull/29684#pullrequestreview-3788723530
PR Review Comment: https://git.openjdk.org/jdk/pull/29684#discussion_r2796760237


More information about the core-libs-dev mailing list