JDK-8255448 : Fastdebug JVM crashes with Vector API when PrintAssembly is turned on
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 16
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-10-27
  • Updated: 2021-01-07
  • Resolved: 2020-11-18
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 16
16 b25Fixed
Related Reports
Relates :  
Relates :  
Description
$ jtreg -Xcomp -XX:-TieredCompilation -XX:+PrintAssembly -timeout:10 test/jdk/jdk/incubator/vector/Float128VectorTests.java

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/hexuejin/repo/jdk-community/src/hotspot/share/ci/ciInstanceKlass.hpp:231), pid=90718, tid=90736
#  Error: assert(_nonstatic_fields != __null) failed
#
# JRE version: OpenJDK Runtime Environment (16.0) (fastdebug build 16-internal+0-adhoc.hexuejin.jdk-community)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 16-internal+0-adhoc.hexuejin.jdk-community, compiled mode, sharing, tiered, compressed oops, g1 gc, linux-aarch64)
# Problematic frame:
# V  [libjvm.so+0x574a9c]  ciInstanceKlass::nonstatic_field_at(int)+0x30
#
# Core dump will be written. Default location: /home/hexuejin/work/SVE_VecAdd/core.%e.90718.%t
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

Comments
Changeset: ef3ddb1d Author: Dongbo He <dongbohe@openjdk.org> Committer: Fei Yang <fyang@openjdk.org> Date: 2020-11-18 01:10:11 +0000 URL: https://github.com/openjdk/jdk/commit/ef3ddb1d
18-11-2020

Finally got crash on linux-x64 (it is indeed in PrintAssembly dump code): Stack: [0x00007ff82a1ef000,0x00007ff82a2f0000], sp=0x00007ff82a2eb060, free space=1008k Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x85b0e4] JVMState::format(PhaseRegAlloc*, Node const*, outputStream*) const+0xef4 V [libjvm.so+0x4f1a13] CallStaticJavaDirectNode::format(PhaseRegAlloc*, outputStream*) const+0x73 V [libjvm.so+0x1572616] PhaseOutput::dump_asm_on(outputStream*, int*, unsigned int)+0x656 V [libjvm.so+0x1578977] PhaseOutput::fill_buffer(CodeBuffer*, unsigned int*)+0x26e7 V [libjvm.so+0x9f1ae8] Compile::Code_Gen()+0x438 V [libjvm.so+0x9fb453] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, DirectiveSet*)+0x1a33 V [libjvm.so+0x83a1ee] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1ce V [libjvm.so+0xa0b4a8] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xe08 V [libjvm.so+0xa0bff8] CompileBroker::compiler_thread_loop()+0x5a8 V [libjvm.so+0x185c666] JavaThread::thread_main_inner()+0x256 V [libjvm.so+0x18633b0] Thread::call_run()+0x100 V [libjvm.so+0x1551696] thread_native_entry(Thread*)+0x116
28-10-2020

This does not seem to be aarch64 specific, removing CPU = aarch64.
27-10-2020

ILW = Assert during C2 compilation, with Vector API (incubator) and PrintAssembly, no workaround but disable print assembly = HLM = P3
27-10-2020