RFR: 8314225: SIGSEGV in JavaThread::is_lock_owned [v3]

Kevin Walls kevinw at openjdk.org
Wed May 1 13:47:55 UTC 2024


On Wed, 1 May 2024 13:24:14 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> 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??)
>
> Ok, so I didn't read it wrong.  If there's only one monitor now on each vframeArrayElement, can you change the name to _monitor and this function should be free_monitor_chunk, singular?

Oh, in a vframeArray there are multiple vframeArrayElement of course.
So vframeArray::deallocate_monitor_chunks() has plural "chunks" in its name correctly, as it deals with all the elements. 

There's only one MonitorChunk* in each vframeArrayElement, and that's called "_monitors".

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

PR Review Comment: https://git.openjdk.org/jdk/pull/18940#discussion_r1586315539


More information about the hotspot-dev mailing list