RFR: 8261391: ZGC crash - SEGV in RevokeOneBias::do_thread [v3]

David Holmes david.holmes at oracle.com
Mon Feb 22 07:48:31 UTC 2021


On 22/02/2021 5:38 pm, Robbin Ehn wrote:
> On Mon, 22 Feb 2021 05:14:39 GMT, David Holmes <dholmes at openjdk.org> wrote:
> 
>>> Robbin Ehn has updated the pull request incrementally with one additional commit since the last revision:
>>>
>>>    Tiny spelling error
>>
>> src/hotspot/share/runtime/handshake.cpp line 291:
>>
>>> 289:     // Only when the target is not executing the handshake itself.
>>> 290:     StackWatermarkSet::start_processing(current_target, StackWatermarkKind::gc);
>>> 291:   }
>>
>> As per my comment to Erik, this situation seems like a programming error to me as there you should not be a way for the target to create a Handle that the executing thread then gets a hold off - data should only flow one way from the requesting thread to the executing thread.
> 
> StackWatermarkSet::start_processing(current_target, StackWatermarkKind::gc); is for thread local resources which may contain oops. A handshake may read from e.g. the target threads stack, so before the executing thread reads from the stack, we make sure it is safe.

Ah I see - not just to make Handles safe (though they are themselves on 
the stack). Thanks for clarifying.

David

> -------------
> 
> PR: https://git.openjdk.java.net/jdk/pull/2571
> 


More information about the hotspot-runtime-dev mailing list