JDK-8243195 : assert(in_hash) failed: node should be in igvn hash table
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 15,16,17
  • Priority: P3
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic
  • CPU: x86_64
  • Submitted: 2020-04-20
  • Updated: 2024-05-15
  • Resolved: 2021-03-29
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 17
17Resolved
Related Reports
Relates :  
Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (t:/workspace/open/src/hotspot/share/opto/compile.cpp:4408), pid=4152, tid=4544
#  assert(in_hash) failed: node should be in igvn hash table
#
# JRE version: Java(TM) SE Runtime Environment (15.0) (fastdebug build 15-internal+0-2020-04-18-0647519.mikael.vidstedt.jdk)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 15-internal+0-2020-04-18-0647519.mikael.vidstedt.jdk, mixed mode, tiered, compressed oops, g1 gc, windows-amd64)
# Core dump will be written. Default location: T:\testoutput\test-support\jtreg_closed_test_hotspot_jtreg_applications_microbenchmarks_jsr335_Test_2_java\scratch\1\hs_err_pid4152.mdmp
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------

Command Line: -Djava.library.path=c:\ade\mesos\work_dir\jib-master\install\2020-04-18-0647519.mikael.vidstedt.jdk\windows-x64-debug.test\hotspot\jtreg\native --patch-module=java.base=T:\testoutput\test-support\jtreg_closed_test_hotspot_jtreg_applications_microbenchmarks_jsr335_Test_2_java\patches\java.base -Djava.security.policy=file:/t:/testoutput/test-support/jtreg_closed_test_hotspot_jtreg_applications_microbenchmarks_jsr335_Test_2_java/jtreg.policy com.sun.javatest.regtest.agent.AgentServer -allowSetSecurityManager -port 31901 -timeoutFactor 10.0

Host: ansible-custom-image-1586993090, Intel(R) Xeon(R) Platinum 8167M CPU @ 2.00GHz, 8 cores, 59G,  Windows Server 2016 , 64 bit Build 14393 (10.0.14393.2969)
Time: Sat Apr 18 23:27:00 2020 /GM elapsed time: 287.656818 seconds (0d 0h 4m 47s)

---------------  T H R E A D  ---------------

Current thread (0x000001d96a51a800):  JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=4544, stack(0x0000002ca1a00000,0x0000002ca1b00000)]


Current CompileTask:
C2: 287656 2471       4       java.security.CodeSource::getCertificates (98 bytes)

Stack: [0x0000002ca1a00000,0x0000002ca1b00000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x9df021]  os::platform_print_native_stack+0xf1  (os_windows_x86.cpp:369)
V  [jvm.dll+0xbe1dcb]  VMError::report+0xf0b  (vmerror.cpp:727)
V  [jvm.dll+0xbe367e]  VMError::report_and_die+0x8ae  (vmerror.cpp:1535)
V  [jvm.dll+0xbe3d74]  VMError::report_and_die+0x64  (vmerror.cpp:1319)
V  [jvm.dll+0x415c22]  report_vm_error+0x102  (debug.cpp:264)
V  [jvm.dll+0x3e014c]  Compile::remove_speculative_types+0x26c  (compile.cpp:4408)
V  [jvm.dll+0x3d28b9]  Compile::Optimize+0x549  (compile.cpp:2076)
V  [jvm.dll+0x3cfd22]  Compile::Compile+0xef2  (compile.cpp:737)
V  [jvm.dll+0x3108c7]  C2Compiler::compile_method+0x117  (c2compiler.cpp:114)
V  [jvm.dll+0x3e7ebe]  CompileBroker::invoke_compiler_on_method+0x79e  (compilebroker.cpp:2211)
V  [jvm.dll+0x3e5c9d]  CompileBroker::compiler_thread_loop+0x29d  (compilebroker.cpp:1893)
V  [jvm.dll+0xb85b2e]  JavaThread::run+0x27e  (thread.cpp:1946)
V  [jvm.dll+0xb7c182]  Thread::call_run+0x192  (thread.cpp:398)
V  [jvm.dll+0x9dd75e]  thread_native_entry+0x10e  (os_windows.cpp:466)
C  [ucrtbase.dll+0x1f4a0]
C  [KERNEL32.DLL+0x84d4]
C  [ntdll.dll+0x6e8b1]

Comments
Here's a snippet from the log file for the jdk-17+12-878-tier6 sighting: java/util/stream/test/org/openjdk/tests/java/util/stream/CollectAndSummaryStatisticsTest.java #section:testng ----------messages:(5/395)---------- command: testng org.openjdk.tests.java.util.stream.CollectAndSummaryStatisticsTest reason: Assumed action based on file name: run testng org.openjdk.tests.java.util.stream.CollectAndSummaryStatisticsTest Mode: othervm [test needs --add-modules, test or library overrides a system module] Additional options from @modules: --add-modules jdk.incubator.foreign elapsed time (seconds): 230.41 ----------configuration:(5/226)*---------- Boot Layer add modules: jdk.incubator.foreign add reads: java.base ALL-UNNAMED patch: java.base T:\\testoutput\\test-support\\jtreg_open_test_jdk_jdk_util\\classes\\0\\lib\\testlibrary\\bootlib\\java.base ----------System.out:(21/1439)*---------- # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=\\compile.cpp:4509 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (t:\\workspace\\open\\src\\hotspot\\share\\opto\\compile.cpp:4509), pid=14760, tid=69864 # assert(in_hash) failed: node should be in igvn hash table # # JRE version: Java(TM) SE Runtime Environment (17.0+12) (fastdebug build 17-ea+12-LTS-878) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-ea+12-LTS-878, compiled mode, compressed oops, compressed class ptrs, g1 gc, windows-amd64) # Core dump will be written. Default location: T:\\testoutput\\test-support\\jtreg_open_test_jdk_jdk_util\\java\\util\\stream\\test\\org\\openjdk\\tests\\java\\util\\stream\\CollectAndSummaryStatisticsTest\\hs_err_pid14760.mdmp # # An error report file with more information is saved as: # T:\\testoutput\\test-support\\jtreg_open_test_jdk_jdk_util\\java\\util\\stream\\test\\org\\openjdk\\tests\\java\\util\\stream\\CollectAndSummaryStatisticsTest\\hs_err_pid14760.log # # Compiler replay data is saved as: # T:\\testoutput\\test-support\\jtreg_open_test_jdk_jdk_util\\java\\util\\stream\\test\\org\\openjdk\\tests\\java\\util\\stream\\CollectAndSummaryStatisticsTest\\replay_pid14760.log # # If you would like to submit a bug report, please visit: # https://bugreport.java.com/bugreport/crash.jsp # ----------System.err:(0/0)---------- ----------rerun:(56/6016)*---------- Here's the crashing thread's stack: --------------- T H R E A D --------------- Current thread (0x00000185f3b75a40): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=69864, stack(0x00000044a5e00000,0x00000044a5f00000)] Current CompileTask: C2: 11777 1882 b sun.nio.fs.NativeBuffers::releaseNativeBuffer (97 bytes) Stack: [0x00000044a5e00000,0x00000044a5f00000] Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [jvm.dll+0xab2971] os::platform_print_native_stack+0xf1 (os_windows_x86.cpp:235) V [jvm.dll+0xcd2a57] VMError::report+0xfc7 (vmError.cpp:738) V [jvm.dll+0xcd43ae] VMError::report_and_die+0x7ce (vmError.cpp:1535) V [jvm.dll+0xcd4ac4] VMError::report_and_die+0x64 (vmError.cpp:1329) V [jvm.dll+0x4bb9c7] report_vm_error+0xb7 (debug.cpp:284) V [jvm.dll+0x4817dd] Compile::remove_speculative_types+0x1dd (compile.cpp:4509) V [jvm.dll+0x473853] Compile::Optimize+0x553 (compile.cpp:2180) V [jvm.dll+0x4712b1] Compile::Compile+0x1421 (compile.cpp:787) V [jvm.dll+0x3a6aac] C2Compiler::compile_method+0x10c (c2compiler.cpp:106) V [jvm.dll+0x489ede] CompileBroker::invoke_compiler_on_method+0x94e (compileBroker.cpp:2311) V [jvm.dll+0x48752a] CompileBroker::compiler_thread_loop+0x2ba (compileBroker.cpp:1985) V [jvm.dll+0xc63437] JavaThread::thread_main_inner+0x1f7 (thread.cpp:1532) V [jvm.dll+0xc59d04] Thread::call_run+0x1b4 (thread.cpp:407) V [jvm.dll+0xab12be] thread_native_entry+0x10e (os_windows.cpp:560) C [ucrtbase.dll+0x1fb80] C [KERNEL32.DLL+0x84d4] C [ntdll.dll+0x51791]
28-02-2021

I'm closing this as cannot reproduce. Internal testing has not shown this assertion failure again on repeated testing runs and neither was it spotted in mainline. We can still open this bug again if the assert is hit at a later point in time.
24-04-2020

ILW = Assert during graph cleanup, only happened once, -XX:-UseTypeSpeculation = HLM = P3
21-04-2020

Does not reproduce with replay compilation.
21-04-2020