RFR: 8356648: runtime/Thread/AsyncExceptionTest.java fails with +StressCompiledExceptionHandlers

Andrey Turbanov aturbanov at openjdk.org
Thu May 22 08:43:52 UTC 2025


On Thu, 22 May 2025 00:13:21 GMT, Dean Long <dlong at openjdk.org> wrote:

> The test fails (or times out) because Runtime1::counter_overflow offers a safepoint, allowing async exceptions, but there is no exception handler for the out-of-line slow path call to Runtime1::counter_overflow.  Rather than add an exception handler, the simple fix is to replace JRT_BLOCK with JRT_BLOCK_NO_ASYNC so that counter_overflow doesn't need to deal with async exceptions.  The GC poll point for backwards branches is sufficient to allow async exceptions.
> I also improved the test so that it fails more quickly rather than waiting forever and eventually timing out, and added a C1-specific run using -XX:+StressCompiledExceptionHandlers.

test/hotspot/jtreg/runtime/Thread/AsyncExceptionTest.java line 70:

> 68: 
> 69:         if (receivedThreadDeathinInternal2 == false && receivedThreadDeathinInternal1 == false) {
> 70:             error =  new RuntimeException("Didn't catch ThreadDeath in internalRun2() nor in internalRun1().\n"

Suggestion:

            error = new RuntimeException("Didn't catch ThreadDeath in internalRun2() nor in internalRun1().\n"

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25375#discussion_r2101983766


More information about the hotspot-dev mailing list