-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
8285835: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work #10894
Conversation
👋 Welcome back kvn! A progress list of the required criteria for merging this PR into |
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.
Looks reasonable to me. Have you verified that the failure with the replay file and jars from the initial crash doesn't reproduce either?
@vnkozlov 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 19 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. ➡️ To integrate this PR with the above commit message to the |
I had the same question. I commented on the issue. It would be good to understand how the test code relates to the code that fails in Lucene and possibly Ben Manes' Caffeine. Maybe a short explanation what is A, B, C in Lucene's code and which loop is affected. |
I tried the replay from the bug and the crash is gone with this fix. |
Thanks for confirmation. See also my comments here: https://bugs.openjdk.org/browse/JDK-8285835?focusedCommentId=14533010&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14533010 The test code in this PR looks like our Lucene code (A wraps/refers B wraps/refers C; all some nested Lucene DocValues wrappers). |
I ran replay and jar files from Tobias's example and looked on EA outputs. I found Allocation which was not marked NSR:
This allocation is also listed in bad dominators output. After fix the the replay passed and the allocation is marked as NSR:
|
Thank you, @rwestrel, for review and additional testing. |
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.
Looks good.
/integrate |
Thank you, Vladimir. |
Going to push as commit 8aa1526.
Your commit was automatically rebased without conflicts. |
EA does not adjust NSR (not_scalar_replaceable) state for referenced allocations.
In the test case object A is NSR because it merges with NULL object. But this state is not propagated to allocations it references. As result other allocations are marked scalar replaceable and related Load node is moved above guarding condition (where A object is checked for NULL).
EA should propagate NSR state.
Thanks to @rwestrel who provided reproducer test case.
Testing tier1-4, xcomp, stress.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/10894/head:pull/10894
$ git checkout pull/10894
Update a local copy of the PR:
$ git checkout pull/10894
$ git pull https://git.openjdk.org/jdk pull/10894/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 10894
View PR using the GUI difftool:
$ git pr show -t 10894
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/10894.diff