RFR: 8283849: AsyncGetCallTrace may crash JVM on guarantee [v8]

Jaroslav Bachorik jbachorik at openjdk.java.net
Mon May 16 09:51:43 UTC 2022


On Mon, 16 May 2022 08:49:40 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 refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains two new commits since the last revision:
> 
>  - Use RAII object to manage thread in_asgct status
>  - Avoid check overhead when possible

Ok, I moved the expensive check only after it is sure we are dealing with a zombie method.

Thanks for all the suggestions! This change now looks much more self-contained than I hoped for.

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

PR: https://git.openjdk.java.net/jdk/pull/8549


More information about the hotspot-dev mailing list