JDK-8209639 : assert failure in coalesce.cpp: attempted to spill a non-spillable item
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8,11,12
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-08-17
  • Updated: 2019-08-15
  • Resolved: 2018-08-24
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 JDK 8
11.0.2Fixed 12 b09Fixed 8u202Fixed
Related Reports
Relates :  
Unexpected Error
Internal Error at coalesce.cpp:298, pid=21640, tid=21651
assert(false) failed: attempted to spill a non-spillable item: 59: testN_mem_reg0, ireg = 13, spill_type: PhiInputSpillCopy

Do you want to debug the problem?

To debug, run 'gdb /proc/21640/exe 21640'; then switch to thread 21651 (0x0000000000005493)
Enter 'yes' to launch gdb automatically (PATH must include gdb)
Otherwise, press RETURN to abort...

test case is attached. Ran with:

java -XX:-TieredCompilation -XX:-BackgroundCompilation -XX:-UseOnStackReplacement -XX:CompileOnly=SubsumingLoads::test -XX:CompileCommand=quiet -XX:CompileCommand=dontinline,SubsumingLoads::not_inlined -Xmx1024m SubsumingLoads
Fix Request: I'm in the process of backporting this fix to 8u as one of our customers hits it. So it seems like a good candidate for a backport to 11u as well. The fix is fairly low risk as it detects a rare condition and rather than make the VM fail, it reattempts compilation with an optimization disabled. The fix was pushed to the current jdk development repo almost 2 months ago and no follow up issues were found. The fix itself includes a regression test. The patch applies cleanly.

ILW = Crash during compilation in register allocator (bailout in product builds), rare but reproducible with test, disable compilation = MMM = P3

Could be the same issue as JDK-8206345.