-
Notifications
You must be signed in to change notification settings - Fork 92
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
8318757: VM_ThreadDump asserts in interleaved ObjectMonitor::deflate_monitor calls #337
Conversation
…or::deflate_monitor calls Needs -XX:+UnlockExperimentalVMOptions in new test Backport 87be6b69fe985eee01fc3344f9153d774db792c1
Backport 369bbecc0dab389b523c09bc332fe1cf6394cb26
…: Owned monitors should not have a dead object Conflicts in JtregNativeHotspot.gmk due to absent JDK-8311541 Reviewed-by: dholmes, ihse, sspitsyn, dcubed
…assive logs Backport 52d497619e58a5677bc4a015b1bd87f600f23837
👋 Welcome back shade! A progress list of the required criteria for merging this PR into |
This backport pull request has now been updated with issue from the original commit. |
/issue add JDK-8318757 |
@shipilev This issue is referenced in the PR title - it will now be updated. |
@shipilev |
@shipilev |
@shipilev |
GHA RISC-V failure is known environmental issue. |
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.
@stefank -- it looks like you are tasked with backporting some of this to 21.0.4-oracle. Maybe you want to review this PR, which would also allow you to pick it up as commit later? :)
Yes, these are essentially the same patches that I've been testing for 21.0.4-oracle.
|
OK, great, thanks for looking. |
/approval 8318757 request This resolves potentially catastrophic bug in monitor deflation due to interleaving with thread dumping code that is frequently exercised by profilers. This is a part of atomic 21u integration, see 21u-dev PR for more details. Applies cleanly, but the new test needs -XX:+UnlockExperimentalVMOptions to gain access to -XX:LockingMode. After that amendment, all tests pass. Was in mainline for several months. Small bugtail: needs JDK-8320515 as the followup. /approval 8319896 request This resolves the last place that might lead to bugs due to interleaving with concurrent monitor deflation. Less important than JDK-8318757, since this only happens on JVM shutdown, but it makes relevant backports like JDK-8320515 clean. This is a part of atomic 21u integration, see 21u-dev PR for more details. Applies cleanly. All tests pass. Was in mainline for several months. Small bugtail: needs JDK-8325437 as the followup. /approval 8320515 request Fixes the JNI interaction problem, followup for JDK-8318757. This is a part of atomic 21u integration, see 21u-dev PR for more details. Does not apply cleanly due to minor conflict in JtregNativeHotspot.gmk. All tests pass. Was in mainline for several months, without bugtail. /approval 8325437 request Reduces the logs noise, followup for JDK-8319896. This is a part of atomic 21u integration, see 21u-dev PR for more details. Applies cleanly. All tests pass. Was in mainline for a month, without bugtail. |
@shipilev 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 21 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
@adinn Could you please review this as well? Thanks. |
@jerboaa Sure, I'll take a look. |
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.
Backport looks good. The only thing to note is that we might want to follow this up with whatever is done to resolve JDK-8320720.
Thanks! |
/approve yes |
@jerboaa |
Thanks all! /integrate |
Going to push as commit d1af31b.
Your commit was automatically rebased without conflicts. |
This resolves potentially catastrophic bug in monitor deflation. Thread dumps are routinely requested by profilers, so it is a real in-production risk. It would be more prominent as we backport improvements in monitor deflation code like JDK-8319048. The interaction between deflation thread that can be stopped at safepoint in the middle of deflation and the VM op that deflates monitors itself may corrupt the VM state.
This series of backports moves all deflation to monitor deflation thread, avoiding the issue. There are 4 interconnected issues, which are backported here atomically:
-XX:+UnlockExperimentalVMOptions
to gain access to-XX:LockingMode
. Otherwise applies cleanly. It needs JDK-8320515 as the followup.JtregNativeHotspot.gmk
.@stefank -- it looks like you are tasked with backporting some of this to 21.0.4-oracle. Maybe you want to review this PR, which would also allow you to pick it up as commit later? :)
Additional testing:
all
tests passProgress
Issues
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk21u-dev.git pull/337/head:pull/337
$ git checkout pull/337
Update a local copy of the PR:
$ git checkout pull/337
$ git pull https://git.openjdk.org/jdk21u-dev.git pull/337/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 337
View PR using the GUI difftool:
$ git pr show -t 337
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk21u-dev/pull/337.diff
Webrev
Link to Webrev Comment