RFR: 8186035: Klass::decode_klass_not_null() asserted on bad oop
stefan.karlsson at oracle.com
Fri Aug 11 11:22:06 UTC 2017
On 2017-08-11 12:35, Thomas Schatzl wrote:
> Hi Stefan,
> On Fri, 2017-08-11 at 11:33 +0200, Stefan Karlsson wrote:
>> Hi all,
>> Please review this patch to temporarily remove a failing assert in
> looks good. Thanks for taking care of this.
Thanks for the review and finding the root cause of this problem ;)
>> The problem is that during initial marking, multiple threads might
>> race to copy an object and they will all try to mark the new copy if
>> it ends up in the old gen. In the marking code, there's an assert
>> that the object should be valid. However, only the thread that won
>> the race to copying the object is allowed to read the contents of the
>> 'to' copy, and all other threads might see garbage and could fail on
>> this assert.
>> The removal of the assert is an interim solution, to get rid of
>> failure in our testing. I'm working on another fix for this, where
>> only the winning thread is marking newly copied object. See:
> also, thanks for that.
More information about the hotspot-gc-dev