RFR: 8293166: jdk/jfr/jvm/TestDumpOnCrash.java fails on Linux ppc64le and Linux aarch64 [v2]
Ralf Schmelter
rschmelter at openjdk.org
Wed Nov 9 09:30:38 UTC 2022
On Wed, 9 Nov 2022 08:44:56 GMT, Ralf Schmelter <rschmelter at openjdk.org> wrote:
>> Disabling tiered compilation avoids the sporadic failures of the test.
>>
>> On ppc64 and aarch64 a trap-based mechanism is used to switch from tier 1 to higher tiers. In the test a crash is provoked and a secondary error handler is installed at the start of error reporting, which doesn't handle these traps anymore and just stops the thread. But since the thread state is 'in Java', this prevents any safepoint to be executed. And this causes the JFR emergency dump to hang in a native to VM transition, so the dump is not written and the test fails (see the bug report for more details).
>
> Ralf Schmelter has updated the pull request incrementally with one additional commit since the last revision:
>
> Adjust copyright
> Just to make sure I understand.
>
> JFR emergency dump tries to enter native VM state. That causes SIGTRAP to fire in a different thread B?
No, there is a JFR Java thread which periodically runs and this one traps because the code switches from tier 1 to a higher tier. Since this thread is "In Java" it prevents a guaranteed safepoint to finish. And the JFR code then waits forever at the native->in VM transition.
-------------
PR: https://git.openjdk.org/jdk/pull/10943
More information about the hotspot-jfr-dev
mailing list