JDK-8279062 : C2: assert(t->meet(t0) == t) failed: Not monotonic after JDK-8278413
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 18
  • Priority: P3
  • Status: Closed
  • Resolution: Not an Issue
  • Submitted: 2021-12-21
  • Updated: 2022-06-06
  • Resolved: 2021-12-23
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 18
18Resolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
Reliably happens on x86_32:

$ CONF=linux-x86-server-fastdebug make run-test TEST=serviceability/jvmti/GetLocalVariable/GetLocalVars.java 

#  Internal Error (/home/shade/trunks/shipilev-jdk18/src/hotspot/share/opto/phaseX.cpp:1741), pid=2708428, tid=2708444
#  assert(t->meet(t0) == t) failed: Not monotonic

Current thread (0xa4666478):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=2721649, stack(0xa373f000,0xa3800000)]

Current CompileTask:
C2:   5783 1738    b  4       java.util.IdentityHashMap::<init> (44 bytes)

Stack: [0xa373f000,0xa3800000],  sp=0xa37fd2f0,  free space=760k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x1393634]  PhaseCCP::analyze()+0x484
V  [libjvm.so+0x95edc1]  Compile::Optimize()+0x931
V  [libjvm.so+0x96109a]  Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x135a
V  [libjvm.so+0x786323]  C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x863
V  [libjvm.so+0x97355d]  CompileBroker::invoke_compiler_on_method(CompileTask*)+0x15bd
V  [libjvm.so+0x974479]  CompileBroker::compiler_thread_loop()+0x849
V  [libjvm.so+0x99d3fb]  CompilerThread::thread_entry(JavaThread*, JavaThread*)+0x2b
V  [libjvm.so+0x16d2628]  JavaThread::thread_main_inner()+0x5b8
V  [libjvm.so+0x16d4bd2]  JavaThread::run()+0x382
V  [libjvm.so+0x16db4ae]  Thread::call_run()+0xfe
V  [libjvm.so+0x130d873]  thread_native_entry(Thread*)+0x123
C  [libpthread.so.0+0x8635]  start_thread+0xf5

Bisection points to JDK-8278413.
Comments
I think it is easier to back out the change at this point: JDK-8279204. The failure is gone after the backout.
23-12-2021

Closing this as it is not an issue anymore after the backout of JDK-8278413 with JDK-8279204. This bug should be addressed with the redo fix in JDK-8279219.
23-12-2021

ILW = Assertion in CCP and recent regression, x86_32 and with single test only?, disable compilation of affected method = HLM = P3
21-12-2021