[14] RFR (XS): 8235305: Corrupted oops embedded in nmethods due to parallel modification during optional evacuation
Thomas Schatzl
thomas.schatzl at oracle.com
Mon Jan 20 11:57:03 UTC 2020
Hi Stefan + Stefan,
thanks for your reviews :)
Thomas
On 20.01.20 12:28, Stefan Karlsson wrote:
> Looks good.
>
> StefanK
>
> On 2020-01-17 14:27, Thomas Schatzl wrote:
>> Hi Stefan,
>>
>> On 17.01.20 10:06, Stefan Johansson wrote:
>>> Hi Thomas,
>>>
>>> On 2020-01-16 14:20, Thomas Schatzl wrote:
>>>> Hi all,
>>>>
>>>> can I get reviews for this change that fixes a bug in the
>>>> abortable mixed gc algorithm where G1 might corrupt oops embedded in
>>>> nmethods due to parallel modification during an optional evacuation
>>>> phase?
>>>>
>>>> G1 currently collects embedded oops in nmethods twice: once in the
>>>> optional roots list, and once as nmethods in the strong code roots
>>>> list for a particular region.
>>>>
>>>> Now it can happen that this oop embedded in in the code stream is
>>>> unaligned, so if that oop is modified during relocation word tearing
>>>> may occur, causing follow-up crashes.
>>>>
>>>> The fix is to not collect oops from nmethods in the optional code
>>>> root list as the strong code root list for a particular region
>>>> already always contains it anyway.
>>>>
>>>> Thanks go to stefank, eriko and sjohanss for helping with analyzing,
>>>> testing and the discussion around it.
>>>>
>>>> CR:
>>>> https://bugs.openjdk.java.net/browse/JDK-8235305
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~tschatzl/8235305/webrev/
>>>
>>> Fix looks good.
>>
>> Thanks for your review.
>>
>>> Just some things around the naming of the template parameter and enum
>>> after adding this. I don't have a much better idea
>> [...]
>>
>> Talked to them about this and I'm good with their suggestion:
>>
>> http://cr.openjdk.java.net/~tschatzl/8235305/webrev.1 (full)
>> http://cr.openjdk.java.net/~tschatzl/8235305/webrev.0_to_1 (diff)
>>
>> Thanks,
>> Thomas
>>
More information about the hotspot-gc-dev
mailing list