-
Notifications
You must be signed in to change notification settings - Fork 236
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
8268364: jmethod clearing should be done during unloading #2935
Conversation
👋 Welcome back krk! A progress list of the required criteria for merging this PR into |
@krk This change now passes all automated pre-integration checks. 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 33 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. As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@coleenp) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
This backport pull request has now been updated with issue from the original commit. |
|
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.
This looks like a good backport.
|
/approval request The fix is required to allow JVM TI tools, especially profilers, run safely with class unloading enabled. Low risk: a small localized change that only affects liveness of jmethodIDs. |
/approval request All checks passing. The fix is required to allow JVM TI tools, especially profilers, to run safely with class unloading enabled. Low risk: a small localized change that only affects liveness of jmethodIDs. |
@shipilev JDK 11u is done and only very select fixes will be allowed in going forward. For this one, I'll let @theRealAph handle approval. On the surface it seems OK, but it's another change to a done release which only seems to affect corner cases (profilers when classes get unloaded). FWIW, SAP stopped work on JDK 11u (11.0.25 was the last one) so you can not expect answers from them for 11u. |
@krk This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration! |
/integrate |
/sponsor |
Going to push as commit 50da3f6.
Your commit was automatically rebased without conflicts. |
Sorry for the confusion, thanks for moving it. |
Thanks. I'm a little late in doing the transition myself with being away at the beginning of the week, but the right version should be used automatically once https://bugs.openjdk.org/browse/JDK-8345509 is integrated. I just thought you should be aware that this will be in the April release. The cut-off for January was Friday. |
Backport of 8268364, single hunk conflict resolved by accepting "empty" from the backport commit vs.
clear_jmethod_ids
invocation in the dtor. Backport commit moves theclear_jmethod_ids
invocation tounload
method instead.It fixes crashes when accessing jmethodIDs of a class being unloaded.
Here is the reproducer that crashes JVM in ~1 second without the patch, but works fine with it: gist.
This fix also resolves the issue reported at async-profiler/async-profiler#974 for Java 11.
To run the repro:
Progress
Warning
8268364: jmethod clearing should be done during unloading
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk11u-dev.git pull/2935/head:pull/2935
$ git checkout pull/2935
Update a local copy of the PR:
$ git checkout pull/2935
$ git pull https://git.openjdk.org/jdk11u-dev.git pull/2935/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2935
View PR using the GUI difftool:
$ git pr show -t 2935
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk11u-dev/pull/2935.diff
Using Webrev
Link to Webrev Comment