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

Kevin Walls kevinw at openjdk.org
Wed May 8 11:19:55 UTC 2024


On Thu, 2 May 2024 19:37:31 GMT, Kevin Walls <kevinw at openjdk.org> wrote:

>> I assume it's only for the `fill_in` `realloc_failures` case.  But you're right, it doesn't seem very useful.  It's just going to look like an unlocked monitor slot in the interpreter frame.  We could consider skipping these in `fill_in`, then they won't show up later in `unpack_on_stack`().
>
> fill_in() has previously OK with seeing monitor->owner() == nullptr
> so it's already setting dest->set_obj(null) under some conditions.
> 
> I see we can handle the null separately and simplify the asserts there.
> 
> vframeArrayElement::unpack_on_stack()
> Still might retrieve a null, so the asserts there keep the guard against doing the owner check -- I'm not sure if they won't show up there - it loops over the number of elements in the MonitorChunk* so it should see them all?

(marking as resolved, null checks are back in these asserts, there could be a null there from the is_scalar_replaced case, and possibly if realloc_failures is true)

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

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


More information about the hotspot-dev mailing list