[jdk17] RFR: 8268676: assert(!ik->is_interface() && !ik->has_subklass()) failed: inconsistent klass hierarchy
Roland Westrelin
roland at openjdk.java.net
Wed Jun 16 07:47:37 UTC 2021
On Tue, 15 Jun 2021 21:58:45 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
> JDK-8267947 disabled the caching for "has_subklass() == false" and it became
> more likely to observe class hierarchy changes when concurrent class loading
> happens.
>
> `ArrayCopy` optimization may observe an effectively exact klass and proceed,
> but the observation can be invalidated later.
>
> Proposed fix turns the problematic assert into a runtime check which bails out
> the transformation if src input doesn't have exact klass type anymore.
>
> Testing:
> - [x] hs-tier1 - hs-tier2
Looks good.
-------------
Marked as reviewed by roland (Reviewer).
PR: https://git.openjdk.java.net/jdk17/pull/67
More information about the hotspot-compiler-dev
mailing list