-
Notifications
You must be signed in to change notification settings - Fork 252
8214972: Uses of klass_holder() except GC need to apply GC barriers #3059
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 fandreuz! 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 and summary from the original commit. |
|
/issue add JDK-8210321 |
|
@fandreuz |
Fix klass_holder() and make all callers use it, remove holder_phantom(). Reviewed-by: eosterlund, dlong
119f75c to
d7b5998
Compare
phohensee
left a comment
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 ok, but why is it needed as a prereq for JDK-8339725?
Given that 11u is old, why do you want to backport it? Do you have production use issues? I recommend running both tier1 and tier2, with both fastdebug and release JDKs.
It's difficult to pinpoint the specific issue as the problem manifests as a segfault in an unrelated location. I determined JDK-8214972 is needed by bisecting the history and cherry-picking JDK-8339725 into each commit. The commit related to JDK-8214972 is the first where the reproducer attached to JDK-8339725 runs successfully. Applying both JDK-8339725 and JDK-8214972 to jdk11 solves the problem indeed.
We had an occurrence of this issue in async-profiler/async-profiler#974. As reported by the user, the problem affects jdk11 too. JDK-8339725 was already backported to jdk17: openjdk/jdk17u-dev#3646.
I ran tier1 with release already, I'll start a tier2 run with fastdebug. |
|
@phohensee I ran the following test suites:
The failures don't seem to be related to my changes, possibly flaky tests? I found tickets related to them (e.g. JDK-8305900) which haven't been backported to jdk11. |
phohensee
left a comment
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.
Thanks for the explanation and additional testing.
|
|
|
/approval request Backporting as a prerequisite to backport and fix JDK-8339725. We had an occurrence of that crash, reported by an Async-Profiler user: async-profiler/async-profiler#974 The two backports in this PR apply almost cleanly, except for some trivial conflicts due to the fact that JDK-8209301 has not been backported to jdk11. Ran tier1 and tier2 test suites with release and fastdebug, I didn't notice any regression. |
|
/approve no The risk of introducing this change doesn't outweigh the benefit of fixing an async profiler issue at this point in time of JDK 11 life-cycle. Users need to either a) run without async-profiler b) upgrade to JDK 17. |
|
@jerboaa |
I've been working on a backport to fix JDK-8339725. The fix attached to the ticket is not enough to fix the problem on jdk11.
The missing backport is JDK-8214972, which I apply in this PR. JDK-8210321 is also needed to provide
ClassLoaderData::holder_no_keepalive.Tier1 tests completed successfully.
Progress
Issues
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk11u-dev.git pull/3059/head:pull/3059$ git checkout pull/3059Update a local copy of the PR:
$ git checkout pull/3059$ git pull https://git.openjdk.org/jdk11u-dev.git pull/3059/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 3059View PR using the GUI difftool:
$ git pr show -t 3059Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk11u-dev/pull/3059.diff
Using Webrev
Link to Webrev Comment