RFR: 8344935: [ubsan]: javaThread.hpp:1241:52: runtime error: load of value 9831830, which is not a valid value for type 'freeze_result' [v4]

Richard Reingruber rrich at openjdk.org
Mon Dec 2 17:35:42 UTC 2024


On Mon, 2 Dec 2024 17:04:58 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:

>> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   add parenthesis, rename variables
>
> src/hotspot/share/runtime/continuationFreezeThaw.cpp line 1686:
> 
>> 1684: static freeze_result preempt_epilog(JavaThread* current, ContinuationWrapper& cont, freeze_result res, frame& old_last_frame) {
>> 1685:   if (UNLIKELY(res != freeze_ok)) {
>> 1686:     JFR_ONLY(current->set_last_freeze_fail_result(res);)
> 
> Note that we don’t need to save the result when unmounting from the VM, i.e the preempt case. We return it from `Continuation::try_preempt()` so it is already available when we call `post_vthread_pinned_event()` [1][2]. When unmounting from Java we do need to save it because the call to `post_vthread_pinned_event()` will be done later in `VirtualThread.postPinnedEvent()`, where the return value from the freeze call is not available anymore. 
> 
> [1] https://github.com/openjdk/jdk/blob/30b8bbe255c1653d25961c3fe79096b2b8d62bd6/src/hotspot/share/runtime/objectMonitor.cpp#L603
> [2] https://github.com/openjdk/jdk/blob/30b8bbe255c1653d25961c3fe79096b2b8d62bd6/src/hotspot/share/runtime/objectMonitor.cpp#L1824

I see. Thanks for making us aware.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22361#discussion_r1866302557


More information about the hotspot-runtime-dev mailing list