8288360: CI: ciInstanceKlass::implementor() is not consistent for well-known classes #15
Conversation
👋 Welcome back vlivanov! A progress list of the required criteria for merging this PR into |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
@iwanowww This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 1 new commit pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good.
Thanks for the reviews, Tobias and Vladimir. /integrate |
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
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk19 pull/15/head:pull/15
$ git checkout pull/15
Update a local copy of the PR:
$ git checkout pull/15
$ git pull https://git.openjdk.org/jdk19 pull/15/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 15
View PR using the GUI difftool:
$ git pr show -t 15
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk19/pull/15.diff