JDK-8205107 : assert(c->Opcode() == Op_SafePoint) failed: broken outer loop
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-06-15
  • Updated: 2018-10-31
  • Resolved: 2018-06-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12
11 b20Fixed 12Fixed
Related Reports
Relates :  
Description
The safepoint node belonging to a OuterStripMinedLoopEnd is removed making us fail on the assert.

I have only been able to reproduce this running with -XX:+ZGC, but no barriers are involved, suggesting that it could happen with any GC.

Comments
http://cr.openjdk.java.net/~neliasso/8205107/webrev.03/
20-06-2018

ILW = Assert during compilation, with Loop Strip Mining and ZGC (but probably not GC specific), disable loop strip mining = HLM = P3
15-06-2018

http://cr.openjdk.java.net/~neliasso/8205107/webrev.02/
15-06-2018

This bug was found running open/test/jdk/java/util/concurrent/tck/JSR166TestCase.java with -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -Xcomp No gc barriers is involved but ZGC somehow triggers a different order of events leading up to this,
15-06-2018