Skip to content
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

8260637: Shenandoah: assert(_base == Tuple) failure during C2 compilation #2400

Closed
wants to merge 1 commit into from

Conversation

rwestrel
Copy link
Contributor

@rwestrel rwestrel commented Feb 4, 2021

Another shenandoah bug with a fix in shared code.

LRBRightAfterMemBar.test2() has 2 allocations that are non escaping
but non scalarizable. As a result, the null check for a3.f is
optimized out but the CastPP is left in the graph. That CastPP becomes
control dependent on the o2 == null check which is later hoisted out
of the loop. The CastPP is then right after the membar of the barrier = 0x42
volatile access but with an out of loop control. Because the node is
considered pinned by loopopts, it is assigned the membar as
control. The input of the CastPP is a shenandoah barrier that's
sandwiched between the membar and the CastPP and so expanded right
after the membar (that is between the membar and its control
projection). That causes the crash. I don't think cast nodes need to
be pinned so I propose that as a fix.

/cc shenandoah,hotspot-compiler


Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8260637: Shenandoah: assert(_base == Tuple) failure during C2 compilation

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/2400/head:pull/2400
$ git checkout pull/2400

@bridgekeeper
Copy link

bridgekeeper bot commented Feb 4, 2021

👋 Welcome back roland! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk openjdk bot added rfr Pull request is ready for review shenandoah shenandoah-dev@openjdk.org hotspot-compiler hotspot-compiler-dev@openjdk.org labels Feb 4, 2021
@openjdk
Copy link

openjdk bot commented Feb 4, 2021

@rwestrel
The shenandoah label was successfully added.

The hotspot-compiler label was successfully added.

@rwestrel rwestrel marked this pull request as draft Feb 4, 2021
@openjdk openjdk bot removed the rfr Pull request is ready for review label Feb 4, 2021
@rwestrel rwestrel marked this pull request as ready for review Feb 4, 2021
@openjdk openjdk bot added the rfr Pull request is ready for review label Feb 4, 2021
@mlbridge
Copy link

mlbridge bot commented Feb 4, 2021

Webrevs

@rwestrel
Copy link
Contributor Author

rwestrel commented Feb 23, 2021

Anyone for this (simple) change to shared c2 code?

Copy link
Member

@chhagedorn chhagedorn left a comment

Looks reasonable to me!

@openjdk
Copy link

openjdk bot commented Feb 23, 2021

@rwestrel 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:

8260637: Shenandoah: assert(_base == Tuple) failure during C2 compilation

Reviewed-by: chagedorn, kvn

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 271 new commits pushed to the master branch:

  • 67762de: 8262197: JDK-8242032 uses wrong contains_reference() in assertion code
  • 9d9bedd: 8262094: Handshake timeout scaled wrong
  • 29c7263: 8252709: Enable JVMCI when building linux-aarch64 at Oracle
  • 12f6ba0: 8262087: Use atomic boolean type in G1FullGCAdjustTask
  • a5c4b9a: 8260223: Handling of unnamed package in javadoc pages
  • 8cfea7c: 8261921: ClassListParser::current should be used only by main thread
  • 991f7c1: 8210373: Deadlock in libj2gss.so when loading "j2gss" and "net" libraries in parallel.
  • 0217d69: 8261975: Missing "classpath exception" in VectorSupport.java
  • f2bde05: 8262097: Improve CompilerConfig ergonomics to fix a VM crash after JDK-8261229
  • aea474c: 8261269: When using clhsdb to "inspect" a java object, clhsdb prints "Oop for..." twice
  • ... and 261 more: https://git.openjdk.java.net/jdk/compare/c8de943c1fc3491f6be92ad6b6d959050bbddd44...master

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 master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Feb 23, 2021
Copy link
Contributor

@vnkozlov vnkozlov left a comment

Ok

@rwestrel
Copy link
Contributor Author

rwestrel commented Feb 23, 2021

@vnkozlov @chhagedorn thanks for the reviews

@rwestrel
Copy link
Contributor Author

rwestrel commented Feb 23, 2021

/integrate

@openjdk openjdk bot closed this Feb 23, 2021
@openjdk openjdk bot added integrated Pull request has been integrated and removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Feb 23, 2021
@openjdk
Copy link

openjdk bot commented Feb 23, 2021

@rwestrel Since your change was applied there have been 271 commits pushed to the master branch:

  • 67762de: 8262197: JDK-8242032 uses wrong contains_reference() in assertion code
  • 9d9bedd: 8262094: Handshake timeout scaled wrong
  • 29c7263: 8252709: Enable JVMCI when building linux-aarch64 at Oracle
  • 12f6ba0: 8262087: Use atomic boolean type in G1FullGCAdjustTask
  • a5c4b9a: 8260223: Handling of unnamed package in javadoc pages
  • 8cfea7c: 8261921: ClassListParser::current should be used only by main thread
  • 991f7c1: 8210373: Deadlock in libj2gss.so when loading "j2gss" and "net" libraries in parallel.
  • 0217d69: 8261975: Missing "classpath exception" in VectorSupport.java
  • f2bde05: 8262097: Improve CompilerConfig ergonomics to fix a VM crash after JDK-8261229
  • aea474c: 8261269: When using clhsdb to "inspect" a java object, clhsdb prints "Oop for..." twice
  • ... and 261 more: https://git.openjdk.java.net/jdk/compare/c8de943c1fc3491f6be92ad6b6d959050bbddd44...master

Your commit was automatically rebased without conflicts.

Pushed as commit 8a2f589.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
hotspot-compiler hotspot-compiler-dev@openjdk.org integrated Pull request has been integrated shenandoah shenandoah-dev@openjdk.org
3 participants