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