RFR: 8367795: HeadlessMalfunctionTest may fail due to timeout

Phil Race prr at openjdk.org
Wed Sep 24 22:00:39 UTC 2025


On Wed, 24 Sep 2025 21:17:05 GMT, Sergey Bylokhov <serb at openjdk.org> wrote:

>> test/jdk/java/awt/Headless/HeadlessMalfunctionTest.java line 41:
>> 
>>> 39:  *              HeadlessMalfunctionAgent
>>> 40:  *              HeadlessMalfunctionAgent$1
>>> 41:  * @run driver/timeout=240 HeadlessMalfunctionTest
>> 
>> On my system this runs in about 2.5 seconds.
>> Our CI system  -which runs jtreg with concrurrency=4 - on a Linux VM reports a total of 12 seconds (including compilation) and the actual test execution is about 6 seconds.
>> 
>> That was x64 - a Linux ARM system was a total of 10 seconds.
>> 
>> So if you need 240 seconds, then I think you need to look into why it is > 10x slower than I see.
>> 
>> 
>> #section:driver
>> ----------messages:(8/309)----------
>> command: driver HeadlessMalfunctionTest
>> reason: User specified action: run driver HeadlessMalfunctionTest 
>> started: Wed Sep 24 19:20:07 UTC 2025
>> Mode: othervm
>> Additional options from @modules: --add-modules java.desktop
>> Process id: 2328064
>> finished: Wed Sep 24 19:20:13 UTC 2025
>> elapsed time (seconds): 6.077
>
> Just tested it on the system:
> 
> 
> Build performance summary:
>  * Build jobs:     48
>  * Memory limit:   95498 MB
> 
> 
> 
> command: driver HeadlessMalfunctionTest
> reason: User specified action: run driver HeadlessMalfunctionTest 
> started: Wed Sep 24 21:08:33 UTC 2025
> Mode: othervm
> Additional options from @modules: --add-modules java.desktop
> Process id: 101951
> finished: Wed Sep 24 21:09:54 UTC 2025
> elapsed time (seconds): 80.882
> 
> 
> It only becomes slow when concurrency is high enough. I don’t need 240; something around 140 should be sufficient. The value 240 was chosen just in case, for slower and highly concurrent ARM systems.

" * Build jobs:     48"

That's the build jobs from configure.
I've often wondered about that since it is basically saying "I'm going to use everything".

Is that somehow propagated to jtreg concurrency too ? 
Or are you building + testing in parallel ?

If it takes 80 seconds for this test, I wonder why lots of other tests aren't also having a  timeout problem when you run them ?
Why is this test special ?
Or was the removal of the timeout factor too optimistic ?
Does any other test on your config come close to timeout ?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27397#discussion_r2377168000


More information about the client-libs-dev mailing list