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

Dean Long dlong at openjdk.org
Wed May 8 10:01:55 UTC 2024


On Wed, 8 May 2024 08:30:30 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

>> Removal of JavaThread's MonitorChunks member.  This held lock information during deoptimization, but access to it is unnecessary for anything other than the deoptimization itself.
>> 
>> Access to it in is_lock_owned() was racy, and caused rare crashes.
>
> Kevin Walls has updated the pull request incrementally with one additional commit since the last revision:
> 
>   null nullptr oops

src/hotspot/share/runtime/vframeArray.cpp line 95:

> 93:         BasicObjectLock* dest = _monitors->at(index);
> 94:         if (monitor->owner_is_scalar_replaced()) {
> 95:           dest->set_obj(nullptr);

It looks like there is an existing bug that allows dest->lock() to be uninitialized here, which could cause problems later on in unpack_on_stack if move_to sees a "neutral" value and tries to inflate.

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

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


More information about the hotspot-dev mailing list