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