RFR: 8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes
Vladimir Ivanov
vlivanov at openjdk.java.net
Tue Jun 14 17:56:55 UTC 2022
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
-------------
Commit messages:
- 8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes
Changes: https://git.openjdk.org/jdk19/pull/15/files
Webrev: https://webrevs.openjdk.org/?repo=jdk19&pr=15&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8288360
Stats: 7 lines in 1 file changed: 2 ins; 2 del; 3 mod
Patch: https://git.openjdk.org/jdk19/pull/15.diff
Fetch: git fetch https://git.openjdk.org/jdk19 pull/15/head:pull/15
PR: https://git.openjdk.org/jdk19/pull/15
More information about the hotspot-compiler-dev
mailing list