JDK-8205515 : assert(opcode == Op_RangeCheck) failed: no other if variant here
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 11
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2018-06-22
  • Updated: 2019-03-28
  • Resolved: 2018-07-02
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 b21Fixed 12Fixed
Related Reports
Relates :  
Relates :  
Description
Crash:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (src/hotspot/share/opto/loopPredicate.cpp:144), pid=27204, tid=1818
#  assert(opcode == Op_RangeCheck) failed: no other if variant here
#
# JRE version: Java(TM) SE Runtime Environment (11.0) (fastdebug build 11-internal+0-jdk11-jdk.902)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 11-internal+0-jdk11-jdk.902, mixed mode, tiered, compressed oops, parallel gc, linux-amd64)
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e" (or dumping to JTwork/scratch/0/core.27204)
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

Comments
webrev.02 testing passed "clean". 2 serviceability tests timed out on SPARC - not new failures. http://cr.openjdk.java.net/~roland/8205515/webrev.02/
02-07-2018

I attached hs_err_pid1305.log and replay_pid1305.log
29-06-2018

Failed Kitchensink: Bad graph detected in compute_lca_of_uses n: 2178 Bool === _ 2177 [[ 2179 ]] [lt] early(n): 474 IfTrue === 464 [[ 477 845 ]] #1 !jvms: FastHashMap$EntryIterator::inc @ bci:14 FastHashMap$EntryIterator::<init> @ bci:22 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 n->in(1): 2177 CmpU === _ 2256 197 [[ 2178 ]] early(n->in(1)): 474 IfTrue === 464 [[ 477 845 ]] #1 !jvms: FastHashMap$EntryIterator::inc @ bci:14 FastHashMap$EntryIterator::<init> @ bci:22 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 n->in(1)->in(1): 2256 AddI === _ 847 2255 [[ 2177 ]] !orig=[2176] early(n->in(1)->in(1)): 474 IfTrue === 464 [[ 477 845 ]] #1 !jvms: FastHashMap$EntryIterator::inc @ bci:14 FastHashMap$EntryIterator::<init> @ bci:22 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 n->in(1)->in(2): 197 LoadRange === _ 7 196 [[ 200 439 2183 2249 2177 ]] @bottom[int:>=0]+16 *, idx=10; #int:>=0 !orig=[266] !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 early(n->in(1)->in(2)): 188 IfTrue === 187 [[ 1918 195 ]] #1 !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 LCA(n): 2253 IfFalse === 2252 [[ 2179 ]] #0 !orig=[2174] n->out(0): 2179 RangeCheck === 2253 2178 [[ 2180 2181 ]] P=0.999999, C=-1.000000 n->out(0)->out(0): 2180 IfTrue === 2179 [[ 2186 ]] #1 n->out(0)->out(1): 2181 IfFalse === 2179 [[ 2172 ]] #0 idom[0] 2253 IfFalse === 2252 [[ 2179 ]] #0 !orig=[2174] idom[1] 2252 RangeCheck === 444 2251 [[ 2253 2254 ]] P=0.000001, C=-1.000000 !orig=[2173] idom[2] 444 IfFalse === 442 [[ 2252 ]] #0 !orig=[2115],[1956],[456] !jvms: FastHashMap$EntryIterator::hasNext @ bci:12 FastHashMap$EntryIterator::inc @ bci:11 FastHashMap$EntryIterator::<init> @ bci:22 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[3] 442 If === 1940 441 [[ 443 444 ]] P=0.175971, C=57731.000000 !orig=[1955],[455] !jvms: FastHashMap$EntryIterator::hasNext @ bci:12 FastHashMap$EntryIterator::inc @ bci:11 FastHashMap$EntryIterator::<init> @ bci:22 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[4] 1940 IfFalse === 1939 [[ 442 ]] #0 !orig=[223] !jvms: FastHashMap$EntryIterator::readable @ bci:12 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[5] 1939 If === 216 1938 [[ 1940 1941 ]] P=0.344167, C=5692.000000 !orig=[220] !jvms: FastHashMap$EntryIterator::readable @ bci:12 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[6] 216 Proj === 215 [[ 1939 ]] #0 !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[7] 215 LoadBarrier === 1919 7 214 213 1 [[ 216 217 ]] !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[8] 1919 IfFalse === 1918 [[ 214 215 ]] #0 !orig=[203] !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[9] 1918 RangeCheck === 188 1917 [[ 1919 1920 ]] P=0.000001, C=-1.000000 !orig=[202] !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[10] 188 IfTrue === 187 [[ 1918 195 ]] #1 !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[11] 187 If === 176 184 [[ 188 189 ]] P=0.999999, C=-1.000000 !jvms: FastHashMap$EntryIterator::readable @ bci:11 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[12] 176 Proj === 175 [[ 187 ]] #0 !jvms: FastHashMap::access$500 @ bci:1 FastHashMap$EntryIterator::readable @ bci:4 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[13] 175 LoadBarrier === 56 7 174 173 1 [[ 176 177 ]] !jvms: FastHashMap::access$500 @ bci:1 FastHashMap$EntryIterator::readable @ bci:4 FastHashMap$EntryIterator::<init> @ bci:15 FastHashMap$EntryIterator::<init> @ bci:2 FastHashMap::iterator @ bci:6 ParameterList::clear @ bci:8 idom[14] 56 IfTrue === 55 [[ 175 64 ]] #1 !orig=[75],[84] !jvms: ParameterList::clear @ bci:8 idom[15] 55 If === 40 52 [[ 56 57 ]] P=0.999999, C=-1.000000 !jvms: ParameterList::clear @ bci:8 idom[16] 40 Proj === 39 [[ 55 ]] #0 !jvms: ParameterList::clear @ bci:5 idom[17] 39 LoadBarrier === 26 7 38 37 1 [[ 40 41 ]] !jvms: ParameterList::clear @ bci:5 idom[18] 26 IfTrue === 25 [[ 39 ]] #1 !jvms: ParameterList::clear @ bci:1 idom[19] 25 If === 5 24 [[ 26 27 ]] P=1.000000, C=5129.000000 !jvms: ParameterList::clear @ bci:1 idom[20] 5 Parm === 3 [[ 25 ]] Control !jvms: ParameterList::clear @ bci:-1
29-06-2018

This can easily be reproduced with attached replay compilation file and a build of the latest jdk/jdk repo. I've verified that the problem was not introduced by my fix for JDK-8205033 but most likely by the changes for JDK-8203197. Roland, can you please have a look?
25-06-2018

Sorry for the delay but I was OOTO. I suspect that this failure is either due to JDK-8203197 or JDK-8205033. Will investigate.
25-06-2018

Tobias, please look. You are the last person who touched loop predicates.
22-06-2018

Cannot find any older sighting of this failure mode so for now I'm tagging this as a regression and a promotion_blocker.
22-06-2018