-
Notifications
You must be signed in to change notification settings - Fork 18
8353849: [Lilliput] Avoid race in compact identity hashcode #196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
👋 Welcome back rkennke! A progress list of the required criteria for merging this PR into |
@rkennke 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 no new commits pushed to the ➡️ To integrate this PR with the above commit message to the |
Webrevs
|
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.
Seem reasonable.
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.
LGTM
Thanks @zhengyu123 and @earthling-amzn! I found more races in that code path and would need a re-review! |
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.
Latest revision passes internal testing pipelines on x86 and aarch64. Looks better to me!
Thanks! /integrate |
Going to push as commit e20e6c8. |
Multiple GC threads can concurrently update an object's mark-word (Parallel, G1 and Shenandoah). We need to be careful when doing object-size calculations and pass-through the pre-loaded, safe mark-word, instead of re-loading the mark-word from the object. In the latter case, we might read a forwarding pointer and interpret the bits as hash-bits which would lead to wrong size-calculation and crash.
Testing:
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/lilliput.git pull/196/head:pull/196
$ git checkout pull/196
Update a local copy of the PR:
$ git checkout pull/196
$ git pull https://git.openjdk.org/lilliput.git pull/196/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 196
View PR using the GUI difftool:
$ git pr show -t 196
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/lilliput/pull/196.diff
Using Webrev
Link to Webrev Comment