[9] RFR(S/M): Crash with assert(pd != 0L) failed: PcDesc must not be NULL

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue May 24 15:55:38 UTC 2016

Looks good to me. But please, run RBT too before pushing.


On 5/24/16 7:09 AM, Nils Eliasson wrote:
> Hi all,
> Please review.
> Summary:
> The VM fails on "assert(pd != 0L) failed: PcDesc must not be NULL" when
> walking the Java frames on the stack after hitting a stack overflow.
> The asserts triggers when the trying to find the BCI of an address in an
> nmethod. This assert belongs to stack walking code introduced by
> JDK-8046936 "JEP 270: Reserved Stack Areas for Critical Sections". The
> BCI is not relevant for this code, as we only need the method to find
> the annotation. The similar stack walking code in
> java_lang_Throwable::fill_in_stack_trace in javaClasses.cpp do not have
> the assert in the same position suggesting the assert may have been to
> strong.
> This fix also makes this bug stop reproducing:
> https://bugs.openjdk.java.net/browse/JDK-8156659
> "assert(CodeCache::find_blob_unsafe(_pc) == _cb) failed: inconsistent."
> Solution:
> I have rewritten and simplified the stack walking code in
> SharedRuntime::look_for_reserved_stack_annotated_method removing the
> lookup of BCI.
> Testing:
> Run :hotspot_all on all platforms with and without -Xcomp
> Separately run all uncommontrap tests and the test ReservedStackTest
> written for JEP270.
> Bug: https://bugs.openjdk.java.net/browse/JDK-8153352
> Webrev: http://cr.openjdk.java.net/~neliasso/8153352/webrev.01/
> Best regards,
> Nils Eliasson

More information about the hotspot-compiler-dev mailing list