[jdk17] Integrated: 8268676: assert(!ik->is_interface() && !ik->has_subklass()) failed: inconsistent klass hierarchy

Vladimir Ivanov vlivanov at openjdk.java.net
Thu Jun 17 21:21:31 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

This pull request has now been integrated.

Changeset: 85452692
Author:    Vladimir Ivanov <vlivanov at openjdk.org>
URL:       https://git.openjdk.java.net/jdk17/commit/8545269268ff34a5c6b8a8cc6aff69fff2a7b507
Stats:     8 lines in 1 file changed: 6 ins; 0 del; 2 mod

8268676: assert(!ik->is_interface() && !ik->has_subklass()) failed: inconsistent klass hierarchy

Reviewed-by: kvn, roland, neliasso

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

PR: https://git.openjdk.java.net/jdk17/pull/67


More information about the hotspot-compiler-dev mailing list