RFR: 8322743: assert(held_monitor_count() == jni_monitor_count()) failed

Vladimir Kozlov kvn at openjdk.org
Thu Jan 11 00:38:21 UTC 2024


On Thu, 11 Jan 2024 00:14:38 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> > I think my fix is conservative solution for this issue.
> 
> It's still not clear to me why conservatively marking all objects coming from interpreter as globally escaped wouldn't work (what Dean initially proposed).

It would work only for this OSR case.

> 
> My reading of your response is that it may be way too conservative:
> 
> > But in general case it could be only dead path where such object is referenced.
> 
> Is it your main concern?

First, I am concern that marking synchronization region as `has_escaped_object` during parsing when we load OSR state could be premature and later we can still eliminate locks if we don't do that. That was my comment about dead path.

Second, marking during OSR load could be not enough. We may get an escaped locked object not only in such case. And **not** checking all objects in EA will miss it. Which may be not true and I am paranoid.

I think my fix cover all cases.

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

PR Comment: https://git.openjdk.org/jdk/pull/17331#issuecomment-1885987490


More information about the hotspot-compiler-dev mailing list