JDK-8218601 : [AOT] Crash in AOTCodeHeap::mark_evol_dependent_methods
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 13
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2019-02-07
  • Updated: 2019-08-15
  • Resolved: 2019-02-07
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 13
13 b08Fixed
Related Reports
Relates :  
Description
runtime/RedefineObject/TestRedefineObject.java crashes in

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007ff92e596d58, pid=18046, tid=18056
#
# JRE version: Java(TM) SE Runtime Environment (13.0) (fastdebug build 13-internal+0-2019-02-06-2046411.ekaterina.pavlova.jdk.jdk)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 13-internal+0-2019-02-06-2046411.ekaterina.pavlova.jdk.jdk, compiled mode, sharing, jvmci, jvmci compiler, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x5a3d58]  AOTCodeHeap::mark_evol_dependent_methods(InstanceKlass*)+0x1a8

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

Current thread (0x00007ff9285cb800):  VMThread "VM Thread" [stack: 0x00007ff8f5d14000,0x00007ff8f5e14000] [id=18056]

Stack: [0x00007ff8f5d14000,0x00007ff8f5e14000],  sp=0x00007ff8f5e126c0,  free space=1017k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x5a3d58]  AOTCodeHeap::mark_evol_dependent_methods(InstanceKlass*)+0x1a8
V  [libjvm.so+0x5b10ef]  AOTLoader::mark_evol_dependent_methods(InstanceKlass*)+0xdf
V  [libjvm.so+0x98d239]  CodeCache::mark_for_evol_deoptimization(InstanceKlass*)+0x269
V  [libjvm.so+0x1195ab4]  VM_RedefineClasses::redefine_single_class(_jclass*, InstanceKlass*, Thread*)+0x94
V  [libjvm.so+0x11961c0]  VM_RedefineClasses::doit()+0xb0
V  [libjvm.so+0x1883dc1]  VM_Operation::evaluate()+0x141
V  [libjvm.so+0x18c160e]  VMThread::evaluate_operation(VM_Operation*) [clone .constprop.58]+0x18e
V  [libjvm.so+0x18c1ee2]  VMThread::loop()+0x4f2
V  [libjvm.so+0x18c24f6]  VMThread::run()+0xc6
V  [libjvm.so+0x17b4a20]  Thread::call_run()+0x100
V  [libjvm.so+0x149d51d]  thread_native_entry(Thread*)+0x10d

when running in Graal -Xcomp mode with AOTed jdk.internal.vm.compiler, jdk.internal.vm.ci and java.base modules.

Comments
[~epavlova] Thanks. I can't tell if I'm getting the right error but I assume my simple fix resolves the original problem.
07-02-2019

Sure, I didn't know about this other testing mode. Is there a local way (on my machine) to run this? I tried adding this to the rerun command in the local jtr file: -XX:+UnlockExperimentalVMOptions \ -XX:+EnableJVMCI -XX:+UseJVMCICompiler -Djvmci.Compiler=graal -XX:-TieredCompilation -Xcomp \ but it eventually passes. I added TEST_OPTS_AOT_MODULES=jdk.internal.vm.compiler to the make command line and stuff is happening... but it times out: make test TEST_OPTS_AOT_MODULES=jdk.internal.vm.compiler jdk.internal.vm.ci java.base TEST=runtime/RedefineObject/TestRedefineObject.java JTREG="VM_OPTIONS=-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -Djvmci.Compiler=graal -XX:-TieredCompilation -Xcomp"
07-02-2019

This has most likely been introduced by the fix for JDK-8139551. Coleen, could you please have a look?
07-02-2019

ILW = Crash while marking dependent methods in code cache after class redefinition (regression), easy to reproduce with single test and AOT, disable AOT = HMM = P2
07-02-2019