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