RFR: 8283849: AsyncGetCallTrace may crash JVM on guarantee [v11]
Johannes Bechberger
duke at openjdk.java.net
Tue May 17 13:04:55 UTC 2022
On Tue, 17 May 2022 12:45:52 GMT, Jaroslav Bachorik <jbachorik at openjdk.org> wrote:
>> A gist of the fix is to allow relaxed special handling of code blob lookup when done for ASGCT.
>>
>> Currently, a guarantee will fail when we happen to hit a zombie method which is still on stack. While this would indicate a serious error for the normal execution flow, in case of ASGCT being in progress when the executing thread can be expected at any possible method this is something which may happen and we really should not take the profiled JVM down due to it.
>>
>> <hr>
>> Unfortunately, I am not able to create a simple reproducer for the crash other that testing in our production where the crash is happening sporadically.
>> However, thanks to @parttimenerd and his [ASGCT stress test](https://github.com/parttimenerd/asgct2-tester.git) the problem can be reproduced quite reliably.
>>
>> <br><br>
>>
>> _Note: This is a followup PR for #8061_
>
> Jaroslav Bachorik has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove ASGCTMark
src/hotspot/share/prims/forte.cpp line 594:
> 592: }
> 593:
> 594: // !important! make sure all return points will reset the IN_ASGCT flag to 'false'
Please change it to something like "// !important! make sure all to call set_in_asgct(false) before every return" as this is clearer in the context of the forte.cpp and omits mentioning the encapsulated state.
-------------
PR: https://git.openjdk.java.net/jdk/pull/8549
More information about the hotspot-dev
mailing list