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

Nils Eliasson nils.eliasson at oracle.com
Thu May 26 12:18:57 UTC 2016


Thank you Vladimir,

Test links in the bug report.

Regards,
Nils

On 2016-05-24 17:55, Vladimir Kozlov wrote:
> Looks good to me. But please, run RBT too before pushing.
>
> Thanks,
> Vladimir
>
> 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