Integrated: 8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes

Vladimir Ivanov vlivanov at openjdk.java.net
Tue Jun 14 22:40:43 UTC 2022


On Tue, 14 Jun 2022 17:38:25 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

> ciInstanceKlass::implementor() doesn't cache the result for well-known interfaces (is_shared() == true). Due to concurrent class loading, compilers can observe a change in reported unique implementor (in the worst case: from having no implementors to having one, then to having many) thus introducing paradoxical situations during a compilation.
> 
> What makes it very hard/impossible to trigger the bug is there's only a single well-known interface (java.util.Iterable) present as of now, which gets multiple implementors loaded early during startup.
> 
> Testing: hs-tier1 - hs-tier2

This pull request has now been integrated.

Changeset: 50f99c32
Author:    Vladimir Ivanov <vlivanov at openjdk.org>
URL:       https://git.openjdk.org/jdk19/commit/50f99c3208fc9f479cc109fb6e73d262e27026a2
Stats:     7 lines in 1 file changed: 2 ins; 2 del; 3 mod

8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes

Reviewed-by: thartmann, kvn

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

PR: https://git.openjdk.org/jdk19/pull/15


More information about the hotspot-compiler-dev mailing list