-
Notifications
You must be signed in to change notification settings - Fork 234
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
base: master
Are you sure you want to change the base?
Conversation
👋 Welcome back krk! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
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. |
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
Webrev
Link to Webrev Comment