RFR: 8314225: SIGSEGV in JavaThread::is_lock_owned [v3]
Kevin Walls
kevinw at openjdk.org
Wed May 1 13:12:52 UTC 2024
On Wed, 1 May 2024 12:08:31 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> Kevin Walls has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Remove JavaThread's is_lock_owned
>
> src/hotspot/share/runtime/vframeArray.cpp line 55:
>
>> 53: MonitorChunk* chunk = _monitors;
>> 54: _monitors = nullptr;
>> 55: delete chunk;
>
> Is there just one monitor now on the vframeArrayElement? All of these functions imply there are more than one but if I'm reading this right only one gets deleted.
Thanks Coleen -
There is one MonitorChunk, created with new MonitorChunk(list->length()); where list is vf->monitors()
and it creates its _monitors member as a NEW_C_HEAP_ARRAY sized by number of monitors.
~MonitorChunk() calls FreeHeap(monitors()); so all the info for possibly multiple monitors is freed in one call as before.
JavaThread had possibly a linked list of MonitorChunks, that is being removed (if we ever used that list, wouldn't that imply multiple deopts in the same JavaThread at the same time??)
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/18940#discussion_r1586275883
More information about the hotspot-dev
mailing list