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