JDK-8209509 : nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption fails with assert "MT-unsafe modification of inline cache"
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 12
  • Priority: P3
  • Status: Closed
  • Resolution: Cannot Reproduce
  • Submitted: 2018-08-14
  • Updated: 2019-06-13
  • Resolved: 2018-08-30
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 12
12Resolved
Related Reports
Relates :  
Description
>>>>>>>> Invoke RedefineClasses():
	new class byte count=2285
<<<<<<<< RedefineClasses() is successf# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=t:/workspace/open/src/hotspot/cpu/x86/compiledIC_x86.cpp:166
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (t:/workspace/open/src/hotspot/cpu/x86/compiledIC_x86.cpp:166), pid=28648, tid=14232
#  assert(data == 0 || data == (intptr_t)callee()) failed: a) MT-unsafe modification of inline cache
#
# JRE version: Java(TM) SE Runtime Environment (12.0) (fastdebug build 12-internal+0-jdk12-jdk.206)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 12-internal+0-jdk12-jdk.206, mixed mode, tiered, compressed oops, concurrent mark sweep gc, windows-amd64)
# Core dump will be written. Default location: T:\\testoutput\\jtreg\\JTwork\\scratch\\2\\hs_err_pid28648.mdmp
#
# An error report file with more information is saved as:
# T:\\testoutput\\jtreg\\JTwork\\scratch\\2\\hs_err_pid28648.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#

Current thread (0x00000047fecde800):  JavaThread "Thread-19" [_thread_in_vm, id=14232, stack(0x00000047826a0000,0x00000047827a0000)]

Stack: [0x00000047826a0000,0x00000047827a0000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xba54b1]  os::platform_print_native_stack+0xf1  (os_windows_x86.cpp:373)
V  [jvm.dll+0xdbdf4a]  VMError::report+0xe6a  (vmerror.cpp:696)
V  [jvm.dll+0xdbf86b]  VMError::report_and_die+0x85b  (vmerror.cpp:1448)
V  [jvm.dll+0xdbff94]  VMError::report_and_die+0x64  (vmerror.cpp:1267)
V  [jvm.dll+0x5c201e]  report_vm_error+0x7e  (debug.cpp:233)
V  [jvm.dll+0x568af9]  CompiledDirectStaticCall::set_to_interpreted+0x3b9  (compiledic_x86.cpp:165)
V  [jvm.dll+0x567493]  CompiledIC::set_to_monomorphic+0x433  (compiledic.cpp:402)
V  [jvm.dll+0xc73ee4]  SharedRuntime::resolve_sub_helper+0x904  (sharedruntime.cpp:1379)
V  [jvm.dll+0xc72e6d]  SharedRuntime::resolve_helper+0x17d  (sharedruntime.cpp:1242)
V  [jvm.dll+0xc7300f]  SharedRuntime::resolve_opt_virtual_call_C+0x14f  (sharedruntime.cpp:1513)
C  0x00000047e3973e2c

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::resolve_opt_virtual_call
J 2159% c2 nsk.jvmti.RedefineClasses.StressRedefine.runMethod(Ljava/util/Random;Ljava/lang/String;)V (106 bytes) @ 0x00000047eb5b8230 [0x00000047eb5b7720+0x0000000000000b10]
j  nsk.jvmti.RedefineClasses.StressRedefine$NonstaticMethodCaller.run()V+6
j  java.lang.Thread.run()V+11 java.base@12-internal
v  ~StubRoutines::call_stub
Comments
I'm not able to reproduce this crash and it never showed up again. I'm closing this as "Cannot Reproduce". Please re-open if it shows up again.
30-08-2018

Also wondering if this could be related to JDK-8209447.
15-08-2018

This code was last touched by JDK-8195776. [~goetz], any ideas? Similar issues where fixed in the past (for example, JDK-8067247). As of today, the crash only ever happened once on Windows. ILW = Assert in IC code, intermittent with class redefinition stress test, no workaround = MMH = P3
15-08-2018