RFR: 8215773: applications/kitchensink/Kitchensink.java crash with "assert(ZAddress::is_marked(addr)) failed: Should be marked"
Erik Österlund
erik.osterlund at oracle.com
Mon Jan 7 08:36:27 UTC 2019
Hi Per,
Thanks for the review.
/Erik
On 2019-01-07 09:14, Per Liden wrote:
> On 1/4/19 11:10 AM, Erik Österlund wrote:
>> Hi,
>>
>> During SystemDictionary::do_unloading(), JFR pokes around at the dead
>> mirror oops that died due to class unloading.
>> The mirror is loaded without AS_NO_KEEPALIVE, which makes ZGC load
>> barriers a bit sad, because they dislike loading dead oops.
>>
>> The solution is to load these mirrors with AS_NO_KEEPALIVE
>> decorators, indicating that it is okay for them to be dead as we are
>> only peeking at them. This is fine to do during concurrent execution
>> by the GC thread that is performing class unloading, and hence
>> controls the GC cycle, making sure that the memory of the dead oops
>> is not reclaimed until the accesses have safely finished.
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8215773
>>
>> Webrev:
>> http://cr.openjdk.java.net/~eosterlund/8215773/webrev.00/
>
> Looks good.
>
> /Per
>
>>
>> Manually ran kitchensink 24 hours to make sure this doesn't happen
>> again. And hs-tier1-6 on linux.
>>
>> Thanks,
>> /Erik
More information about the hotspot-runtime-dev
mailing list