On Thu, 5 May 2022 11:28:14 GMT, Jaroslav Bachorik <jbacho...@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_

src/hotspot/share/code/codeCache.cpp line 658:

> 656:     // when in ASGCT handler things might get rough and not all 
> guarantees are held
> 657:     // if the resolved blob is already a zombie return NULL instead of 
> crashing on guarantee
> 658:     return result != NULL || result->is_zombie() ? NULL : result;

Could you add parentheses around the condition and possibly use `&&` instead of 
`||`?

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

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

Reply via email to