-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8370344: Arbitrary Java frames on stack during scoped access #27919
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
base: master
Are you sure you want to change the base?
Conversation
|
👋 Welcome back jvernee! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@JornVernee The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
|
/label remove hotspot |
|
@JornVernee |
|
@JornVernee |
|
@JornVernee |
See the JBS issue for a problem description.
This patch changes to the shared scope closure handshake to be able to handle 'arbitrary' Java frames on the stack during a scoped memory access.
For the purposes of this change, we assume that 'arbitrary' is limited to the following:
InternalErroras a result of a faulting access to a truncated memory-mapped file (seeHandshakeState::handle_unsafe_access_error). This is the only handshake operation (i.e. may be triggered during a scoped access) that calls back into Java.For (1), we can assume that only code in
java.basewill be executed. So, if we see a frame outside ofjava.base, we can stop walking the stack. For (2), all bets are off. So, if any agents are loaded during the stack walk, we have to walk the entire stack. For (3), all code is also assumed to be injava.base.The test
TestSharedCloseJFRis added for scenario (1), and the testTestSharedCloseJvmtiis added for scenario (2).Testing: tier 1-3.
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/27919/head:pull/27919$ git checkout pull/27919Update a local copy of the PR:
$ git checkout pull/27919$ git pull https://git.openjdk.org/jdk.git pull/27919/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 27919View PR using the GUI difftool:
$ git pr show -t 27919Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/27919.diff