RFR: 8266557: assert(SafepointMechanism::local_poll_armed(_handshakee)) failed: Must be [v3]
Robbin Ehn
rehn at openjdk.java.net
Wed Jun 2 11:19:36 UTC 2021
On Tue, 1 Jun 2021 21:14:20 GMT, Daniel D. Daugherty <dcubed at openjdk.org> wrote:
>> Robbin Ehn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>>
>> - Merge branch 'master' into handshakee
>> - Small update
>> - Merge branch 'master' into handshakee
>> - Fix
>
> src/hotspot/share/runtime/handshake.hpp line 107:
>
>> 105: void remove_op(HandshakeOperation* op);
>> 106:
>> 107: void set_active_handshaker(Thread* thread) { Atomic::store(&_active_handshaker, thread); }
>
> Should:
> ```Thread* _active_handshaker;```
> on L89 above be:
> ```Thread* volatile _active_handshaker;```
Yes, you are correct.
The problematic scenario is Deoptimization::deoptimize_frame which is uses this method to figure out how to deopt the frame. In that case _active_handshaker can be concurrently accessed.
-------------
PR: https://git.openjdk.java.net/jdk/pull/3973
More information about the hotspot-runtime-dev
mailing list