-
Notifications
You must be signed in to change notification settings - Fork 147
8316422: TestIntegerUnsignedDivMod.java triggers "invalid layout" assert in FrameValues::validate #2421
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
8316422: TestIntegerUnsignedDivMod.java triggers "invalid layout" assert in FrameValues::validate #2421
Conversation
|
Hi @rm-gh-8, welcome to this OpenJDK project and thanks for contributing! We do not recognize you as Contributor and need to ensure you have signed the Oracle Contributor Agreement (OCA). If you have not signed the OCA, please follow the instructions. Please fill in your GitHub username in the "Username" field of the application. Once you have signed the OCA, please let us know by writing If you already are an OpenJDK Author, Committer or Reviewer, please click here to open a new issue so that we can record that fact. Please use "Add GitHub user rm-gh-8" as summary for the issue. If you are contributing this work on behalf of your employer and your employer has signed the OCA, please let us know by writing |
|
@rm-gh-8 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 50 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. ➡️ 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. |
|
/covered |
|
/signed |
|
Thank you! Please allow for a few business days to verify that your employer has signed the OCA. Also, please note that pull requests that are pending an OCA check will not usually be evaluated, so your patience is appreciated! |
|
Thank you! Please allow for up to two weeks to process your OCA, although it is usually done within one to two business days. Also, please note that pull requests that are pending an OCA check will not usually be evaluated, so your patience is appreciated! |
|
|
|
/approval request for backport of JDK-8316422: TestIntegerUnsignedDivMod.java triggers "invalid layout" assert in FrameValues::validate Motivation: This backport fixes the test. Validated by running "make test TEST='compiler/intrinsics/TestIntegerUnsignedDivMod.java' JTREG='JAVA_OPTIONS=-Xcomp -XX:TieredStopAtLevel=1 -XX:+DeoptimizeALot -XX:+VerifyStack'" on a debug build. |
|
Hi @rm-gh-8 |
|
/approval request for backport of JDK-8316422: TestIntegerUnsignedDivMod.java triggers "invalid layout" assert in FrameValues::validate Ran the following tests on linux-x64, linux-aarch64, macos-aarch64 and windows-x64:
Results are attached. |
|
/integrate |
|
/sponsor |
|
Going to push as commit a04888a.
Your commit was automatically rebased without conflicts. |
|
@phohensee @rm-gh-8 Pushed as commit a04888a. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
Backporting JDK-8316422: TestIntegerUnsignedDivMod.java triggers "invalid layout" assert in FrameValues::validate. When throwing an exception, the top frame pops everything from the stack before pushing the exception object, so the exception state recorded for deoptimization does the same. However, c1 was incorrectly emptying the stack for caller frames as well. Now, instead of emptying the stack for the caller, we mark those slots invalid. For locals, c1 front-end was also removing all the locals, then adding them back before generating the deopt info. Now locals are invalidated like the stack if there is not exception handler. Finally, local values need to be retained instead of invalidated when JVMTI is enabled. I refactored the code to simplify this logic. Some iterators needed to be changed to support nullptr values in the stack state. This was already supported for locals, so now stack/local treatment is more uniform.
Ran GHA Sanity Checks (passed) and adjusted tests (passed). Patch is clean.
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk21u-dev.git pull/2421/head:pull/2421$ git checkout pull/2421Update a local copy of the PR:
$ git checkout pull/2421$ git pull https://git.openjdk.org/jdk21u-dev.git pull/2421/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 2421View PR using the GUI difftool:
$ git pr show -t 2421Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk21u-dev/pull/2421.diff
Using Webrev
Link to Webrev Comment