JDK-8050079 : crash while compiling java.lang.ref.Finalizer::runFinalizer
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8,9
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-04-03
  • Updated: 2020-10-16
  • Resolved: 2014-11-20
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 8 JDK 9
8u40Fixed 9 b42Fixed
Description
FULL PRODUCT VERSION :
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)


FULL OS VERSION :
Microsoft Windows [Version 6.1.7601]

A DESCRIPTION OF THE PROBLEM :
stacktrace from self built jdk (line numbers are a bit off)
jvm.dll!binary_search(Array<Method *> * methods, Symbol * name)  Line 1408	
jvm.dll!InstanceKlass::find_method_index(Array<Method *> * methods, Symbol * name, Symbol * signature)  Line 1459 + 0xf bytes	
jvm.dll!InstanceKlass::find_method(Symbol * name, Symbol * signature)  Line 1431 + 0x14 bytes	
jvm.dll!ClassHierarchyWalker::is_witness(Klass * k)  Line 878	
jvm.dll!ClassHierarchyWalker::find_witness_anywhere(Klass * context_type, bool participants_hide_witnesses, bool top_level_call)  Line 1156 + 0x8 bytes	
jvm.dll!Dependencies::find_unique_concrete_method(Klass * ctxk, Method * m)  Line 1446	
jvm.dll!ciMethod::find_monomorphic_target(ciInstanceKlass * caller, ciInstanceKlass * callee_holder, ciInstanceKlass * actual_recv)  Line 737 + 0xd bytes	
jvm.dll!GraphBuilder::invoke(Bytecodes::Code code)  Line 1852 + 0x10 bytes	
jvm.dll!GraphBuilder::iterate_bytecodes_for_block(int bci)  Line 2764 + 0x8 bytes	
jvm.dll!GraphBuilder::iterate_all_blocks(bool start_in_current_block_for_inlining)  Line 2833	
jvm.dll!GraphBuilder::try_inline_full(ciMethod * callee, bool holder_known, Bytecodes::Code bc, Instruction * receiver)  Line 3951	
jvm.dll!GraphBuilder::try_inline(ciMethod * callee, bool holder_known, Bytecodes::Code bc, Instruction * receiver)  Line 3312 + 0x11 bytes	
jvm.dll!GraphBuilder::invoke(Bytecodes::Code code)  Line 1935	
jvm.dll!GraphBuilder::iterate_bytecodes_for_block(int bci)  Line 2764 + 0x8 bytes	
jvm.dll!GraphBuilder::GraphBuilder(Compilation * compilation, IRScope * scope)  Line 3204 + 0xd6 bytes	
jvm.dll!IRScope::IRScope(Compilation * compilation, IRScope * caller, int caller_bci, ciMethod * method, int osr_bci, bool create_graph)  Line 157 + 0x19 bytes	
jvm.dll!IR::IR(Compilation * compilation, ciMethod * method, int osr_bci)  Line 239 + 0x60 bytes	
jvm.dll!Compilation::build_hir()  Line 147 + 0x1f bytes	
jvm.dll!Compilation::compile_java_method()  Line 379	
jvm.dll!Compilation::compile_method()  Line 452	
jvm.dll!Compilation::Compilation(AbstractCompiler * compiler, ciEnv * env, ciMethod * method, int osr_bci, BufferBlob * buffer_blob)  Line 559	
jvm.dll!Compiler::compile_method(ciEnv * env, ciMethod * method, int entry_bci)  Line 107	
jvm.dll!CompileBroker::invoke_compiler_on_method(CompileTask * task)  Line 1931	
jvm.dll!CompileBroker::compiler_thread_loop()  Line 1751 + 0x6 bytes	
jvm.dll!JavaThread::thread_main_inner()  Line 1699 + 0xa bytes	
jvm.dll!JavaThread::run()  Line 1679 + 0x7 bytes	
jvm.dll!java_start(Thread * thread)  Line 431	

methods is null, Klass passed to is_witness is ObjArrayKlass for [java.lang.Object, sought method is finalize()V context_type is java.lang.Object

THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: No

THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes

REGRESSION.  Last worked in version 7u45

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
happens only with our internal test harness

ERROR MESSAGES/STACK TRACES THAT OCCUR :
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x5926b525, pid=8852, tid=9868
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b132) (build 1.8.0-b132)
# Java VM: Java HotSpot(TM) Client VM (25.0-b70 mixed mode windows-x86 )
# Problematic frame:
# V  [jvm.dll+0xab525]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

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

Current thread (0x164ebc00):  JavaThread "C1 CompilerThread0" daemon [_thread_in_vm, id=9868, stack(0x16ec0000,0x16f10000)]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000000

Registers:
EAX=0x004d08e0, EBX=0x004cf538, ECX=0x004cf538, EDX=0x00000000
ESP=0x16f0eb94, EBP=0x16f0eb9c, ESI=0x00000000, EDI=0x14879618
EIP=0x5926b525, EFLAGS=0x00010202

Top of Stack: (sp=0x16f0eb94)
0x16f0eb94:   00000000 004cf538 16f0ebb8 5926b583
0x16f0eba4:   004cf538 14879618 00000000 00000000
0x16f0ebb4:   004cf538 16f0ebd0 5926fbb8 00000000
0x16f0ebc4:   004cf538 004d08e0 16f0ed94 16f0ed7c
0x16f0ebd4:   59219640 004cf538 004d08e0 164ebc00
0x16f0ebe4:   148010f8 0026f3d8 1838d2f8 183836b8
0x16f0ebf4:   1836f2c8 182ef378 182dd388 182d7c68
0x16f0ec04:   182d0428 182cd810 182da5c0 172c47b8 

Instructions: (pc=0x5926b525)
0x5926b505:   5d c3 8b 11 8b 52 58 57 50 6a 00 ff d2 5f 5e 5b
0x5926b515:   8b e5 5d c3 cc cc cc cc cc cc cc 55 8b ec 53 56
0x5926b525:   8b 32 57 33 ff 4e 78 3b 8d 49 00 8d 04 3e d1 f8
0x5926b535:   8b 4c 82 04 8b 49 04 0f b7 59 18 8b 49 08 8b 4c 


Register to memory mapping:

EAX=0x004d08e0 is an unknown value
EBX=0x004cf538 is an unknown value
ECX=0x004cf538 is an unknown value
EDX=0x00000000 is an unknown value
ESP=0x16f0eb94 is pointing into the stack for thread: 0x164ebc00
EBP=0x16f0eb9c is pointing into the stack for thread: 0x164ebc00
ESI=0x00000000 is an unknown value
EDI=0x14879618 is an unknown value


Stack: [0x16ec0000,0x16f10000],  sp=0x16f0eb94,  free space=314k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xab525]
V  [jvm.dll+0xab583]
V  [jvm.dll+0xafbb8]
V  [jvm.dll+0x59640]
V  [jvm.dll+0x5a175]
V  [jvm.dll+0x1f9e8]
V  [jvm.dll+0x2739c1]
V  [jvm.dll+0x275df6]
V  [jvm.dll+0x2763f8]
V  [jvm.dll+0x276fa9]
V  [jvm.dll+0x277187]
V  [jvm.dll+0x273c08]
V  [jvm.dll+0x275df6]
V  [jvm.dll+0x276816]
V  [jvm.dll+0x27a6fd]
V  [jvm.dll+0x27a84b]
V  [jvm.dll+0x268622]
V  [jvm.dll+0x26880b]
V  [jvm.dll+0x26895a]
V  [jvm.dll+0x268ac2]
V  [jvm.dll+0x268d42]
V  [jvm.dll+0x65a7a]
V  [jvm.dll+0x66139]
V  [jvm.dll+0x1645fc]
V  [jvm.dll+0x164e8a]
V  [jvm.dll+0x1a9186]
C  [msvcr100.dll+0x5c556]
C  [msvcr100.dll+0x5c600]
C  [kernel32.dll+0x133aa]
C  [ntdll.dll+0x39ef2]
C  [ntdll.dll+0x39ec5]


Current CompileTask:
C1:   3559  928   !         java.lang.ref.Finalizer::runFinalizer (62 bytes)


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x1651a800 JavaThread "Thread-11" daemon [_thread_blocked, id=9792, stack(0x184f0000,0x18540000)]
  0x1651a400 JavaThread "rebel-weak-reaper" daemon [_thread_blocked, id=8440, stack(0x18490000,0x184e0000)]
  0x16518800 JavaThread "Service Thread" daemon [_thread_blocked, id=10768, stack(0x17100000,0x17150000)]
=>0x164ebc00 JavaThread "C1 CompilerThread0" daemon [_thread_in_vm, id=9868, stack(0x16ec0000,0x16f10000)]
  0x1647dc00 JavaThread "rebel-change-detector-thread" daemon [_thread_blocked, id=4128, stack(0x16f50000,0x16fa0000)]
  0x1649f400 JavaThread "rebel-debugger-thread" daemon [_thread_blocked, id=10292, stack(0x16d20000,0x16d70000)]
  0x1647d400 JavaThread "FSWatchShutdownOnTermination" daemon [_thread_blocked, id=504, stack(0x15ac0000,0x15b10000)]
  0x16419800 JavaThread "OutputReader" daemon [_thread_blocked, id=9504, stack(0x16c80000,0x16cd0000)]
  0x163f1000 JavaThread "OutputReader" daemon [_thread_blocked, id=10736, stack(0x16be0000,0x16c30000)]
  0x161f1800 JavaThread "GroupPoller" daemon [_thread_blocked, id=6932, stack(0x168d0000,0x16920000)]
  0x16255000 JavaThread "rebel-heartbeat-thread" daemon [_thread_blocked, id=10060, stack(0x16920000,0x16970000)]
  0x15459c00 JavaThread "rebel-cache-writer" daemon [_thread_blocked, id=10296, stack(0x15e60000,0x15eb0000)]
  0x1540ac00 JavaThread "rebel-logger" daemon [_thread_blocked, id=8296, stack(0x15b60000,0x15bb0000)]
  0x14fa8800 JavaThread "Performance logger" daemon [_thread_blocked, id=10852, stack(0x15a60000,0x15ab0000)]
  0x14ec3000 JavaThread "Attach Listener" daemon [_thread_blocked, id=11048, stack(0x15360000,0x153b0000)]
  0x14ec0000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6576, stack(0x15170000,0x151c0000)]
  0x14e7f400 JavaThread "Finalizer" daemon [_thread_blocked, id=10956, stack(0x14d90000,0x14de0000)]
  0x14e7e000 JavaThread "Reference Handler" daemon [_thread_blocked, id=10772, stack(0x14c60000,0x14cb0000)]
  0x0026f800 JavaThread "main" [_thread_blocked, id=11044, stack(0x02040000,0x02090000)]

Other Threads:
  0x00582400 VMThread [stack: 0x14d40000,0x14d90000] [id=10756]
  0x164b6800 WatcherThread [stack: 0x171a0000,0x171f0000] [id=4820]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x0026f3d8] Compile_lock - owner thread: 0x164ebc00

Heap:
 def new generation   total 4928K, used 1882K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,  34% used [0x04800000, 0x0497f838, 0x04c50000)
  from space 512K,  67% used [0x04cd0000, 0x04d26fd0, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8774K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  80% used [0x09d50000, 0x0a5e1890, 0x0a5e1a00, 0x0a800000)
 Metaspace       used 10279K, capacity 10506K, committed 10624K, reserved 10624K

Card table byte_map: [0x046a0000,0x04730000] byte_map_base: 0x0467c000

Polling page: 0x00180000

CodeCache: size=32768Kb used=2198Kb max_used=2198Kb free=30569Kb
 bounds [0x026a0000, 0x028c8000, 0x046a0000]
 total_blobs=1099 nmethods=925 adapters=106
 compilation: enabled

Compilation events (10 events):
Event: 3.533 Thread 0x164ebc00 nmethod 923 0x028c4d08 code [0x028c4e00, 0x028c4e90]
Event: 3.533 Thread 0x164ebc00  924             java.lang.ref.ReferenceQueue::remove (25 bytes)
Event: 3.533 Thread 0x164ebc00 nmethod 924 0x028c4f08 code [0x028c5000, 0x028c509c]
Event: 3.533 Thread 0x164ebc00  925   !         java.lang.ref.ReferenceQueue::remove (122 bytes)
Event: 3.533 Thread 0x164ebc00 nmethod 925 0x028c5108 code [0x028c5250, 0x028c5640]
Event: 3.533 Thread 0x164ebc00  926             java.lang.ref.Finalizer::access$000 (4 bytes)
Event: 3.533 Thread 0x164ebc00 nmethod 926 0x028c58c8 code [0x028c59c0, 0x028c5a30]
Event: 3.533 Thread 0x164ebc00  927             java.lang.ref.Finalizer::access$100 (6 bytes)
Event: 3.533 Thread 0x164ebc00 nmethod 927 0x028c5a88 code [0x028c5b80, 0x028c5c0c]
Event: 3.533 Thread 0x164ebc00  928   !         java.lang.ref.Finalizer::runFinalizer (62 bytes)

GC Heap History (10 events):
Event: 3.358 GC heap before
{Heap before GC invocations=20 (full 0):
 def new generation   total 4928K, used 4684K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
  from space 512K,  52% used [0x04c50000, 0x04c931d0, 0x04cd0000)
  to   space 512K,   0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
 tenured generation   total 10944K, used 8624K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  78% used [0x09d50000, 0x0a5bc258, 0x0a5bc400, 0x0a800000)
 Metaspace       used 9920K, capacity 10152K, committed 10240K, reserved 10624K
Event: 3.360 GC heap after
Heap after GC invocations=21 (full 0):
 def new generation   total 4928K, used 230K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,   0% used [0x04800000, 0x04800000, 0x04c50000)
  from space 512K,  44% used [0x04cd0000, 0x04d09940, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 9920K, capacity 10152K, committed 10240K, reserved 10624K
}
Event: 3.402 GC heap before
{Heap before GC invocations=21 (full 0):
 def new generation   total 4928K, used 4646K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
  from space 512K,  44% used [0x04cd0000, 0x04d09940, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 9969K, capacity 10216K, committed 10368K, reserved 10624K
Event: 3.403 GC heap after
Heap after GC invocations=22 (full 0):
 def new generation   total 4928K, used 246K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,   0% used [0x04800000, 0x04800000, 0x04c50000)
  from space 512K,  48% used [0x04c50000, 0x04c8d830, 0x04cd0000)
  to   space 512K,   0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 9969K, capacity 10216K, committed 10368K, reserved 10624K
}
Event: 3.441 GC heap before
{Heap before GC invocations=22 (full 0):
 def new generation   total 4928K, used 4662K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
  from space 512K,  48% used [0x04c50000, 0x04c8d830, 0x04cd0000)
  to   space 512K,   0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 10029K, capacity 10248K, committed 10368K, reserved 10624K
Event: 3.442 GC heap after
Heap after GC invocations=23 (full 0):
 def new generation   total 4928K, used 338K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,   0% used [0x04800000, 0x04800000, 0x04c50000)
  from space 512K,  66% used [0x04cd0000, 0x04d24b00, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 10029K, capacity 10248K, committed 10368K, reserved 10624K
}
Event: 3.474 GC heap before
{Heap before GC invocations=23 (full 0):
 def new generation   total 4928K, used 4754K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
  from space 512K,  66% used [0x04cd0000, 0x04d24b00, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8679K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  79% used [0x09d50000, 0x0a5c9e00, 0x0a5c9e00, 0x0a800000)
 Metaspace       used 10090K, capacity 10344K, committed 10496K, reserved 10624K
Event: 3.477 GC heap after
Heap after GC invocations=24 (full 0):
 def new generation   total 4928K, used 224K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,   0% used [0x04800000, 0x04800000, 0x04c50000)
  from space 512K,  43% used [0x04c50000, 0x04c881a0, 0x04cd0000)
  to   space 512K,   0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
 tenured generation   total 10944K, used 8774K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  80% used [0x09d50000, 0x0a5e1890, 0x0a5e1a00, 0x0a800000)
 Metaspace       used 10090K, capacity 10344K, committed 10496K, reserved 10624K
}
Event: 3.517 GC heap before
{Heap before GC invocations=24 (full 0):
 def new generation   total 4928K, used 4640K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K, 100% used [0x04800000, 0x04c50000, 0x04c50000)
  from space 512K,  43% used [0x04c50000, 0x04c881a0, 0x04cd0000)
  to   space 512K,   0% used [0x04cd0000, 0x04cd0000, 0x04d50000)
 tenured generation   total 10944K, used 8774K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  80% used [0x09d50000, 0x0a5e1890, 0x0a5e1a00, 0x0a800000)
 Metaspace       used 10243K, capacity 10472K, committed 10624K, reserved 10624K
Event: 3.520 GC heap after
Heap after GC invocations=25 (full 0):
 def new generation   total 4928K, used 347K [0x04800000, 0x04d50000, 0x09d50000)
  eden space 4416K,   0% used [0x04800000, 0x04800000, 0x04c50000)
  from space 512K,  67% used [0x04cd0000, 0x04d26fd0, 0x04d50000)
  to   space 512K,   0% used [0x04c50000, 0x04c50000, 0x04cd0000)
 tenured generation   total 10944K, used 8774K [0x09d50000, 0x0a800000, 0x14800000)
   the space 10944K,  80% used [0x09d50000, 0x0a5e1890, 0x0a5e1a00, 0x0a800000)
 Metaspace       used 10243K, capacity 10472K, committed 10624K, reserved 10624K
}

Deoptimization events (0 events):
No events

Internal exceptions (10 events):
Event: 3.532 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x0494ba40) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.532 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x0494c128) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.532 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x0494c868) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.532 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x0494d098) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.532 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x0494d780) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.533 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x04950a90) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.533 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x049529c8) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.533 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x04953b30) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.533 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x04954708) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]
Event: 3.534 Thread 0x0026f800 Exception <a 'java/lang/reflect/InvocationTargetException'> (0x04956c78) thrown at [D:\re\workspace\8-2-build-windows-i586-cygwin\jdk8\2238\hotspot\src\share\vm\runtime\reflection.cpp, line 1079]

Events (10 events):
Event: 3.528 loading class com/zeroturnaround/javarebel/reporting/messaging/backend/impl/BrowserController
Event: 3.528 loading class com/zeroturnaround/javarebel/reporting/messaging/backend/impl/BrowserController done
Event: 3.528 loading class com/zeroturnaround/javarebel/reporting/messaging/Messaging$ActivationDelivery
Event: 3.528 loading class com/zeroturnaround/javarebel/reporting/messaging/Messaging$ActivationDelivery done
Event: 3.528 Thread 0x1651a800 Thread added: 0x1651a800
Event: 3.529 Thread 0x164a8400 Thread exited: 0x164a8400
Event: 3.531 loading class java/lang/reflect/InvocationTargetException
Event: 3.531 Thread 0x0026f800 DEOPT PACKING pc=0x028bf38b sp=0x0208dce0
Event: 3.531 Thread 0x0026f800 DEOPT UNPACKING pc=0x026dc34c sp=0x0208dbd8 mode 3
Event: 3.531 loading class java/lang/reflect/InvocationTargetException done


Dynamic libraries:
0x001b0000 - 0x001e0000 	C:\Program Files (x86)\Java\jdk1.8.0\bin\java.exe
0x777c0000 - 0x77940000 	C:\Windows\SysWOW64\ntdll.dll
0x74f60000 - 0x75070000 	C:\Windows\syswow64\kernel32.dll
0x75400000 - 0x75447000 	C:\Windows\syswow64\KERNELBASE.dll
0x76640000 - 0x766e0000 	C:\Windows\syswow64\ADVAPI32.dll
0x75760000 - 0x7580c000 	C:\Windows\syswow64\msvcrt.dll
0x75810000 - 0x75829000 	C:\Windows\SysWOW64\sechost.dll
0x758e0000 - 0x759d0000 	C:\Windows\syswow64\RPCRT4.dll
0x74ea0000 - 0x74f00000 	C:\Windows\syswow64\SspiCli.dll
0x74e90000 - 0x74e9c000 	C:\Windows\syswow64\CRYPTBASE.dll
0x76d20000 - 0x76e20000 	C:\Windows\syswow64\USER32.dll
0x76e30000 - 0x76ec0000 	C:\Windows\syswow64\GDI32.dll
0x76e20000 - 0x76e2a000 	C:\Windows\syswow64\LPK.dll
0x75830000 - 0x758cd000 	C:\Windows\syswow64\USP10.dll
0x721f0000 - 0x7238e000 	C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.17514_none_41e6975e2bd6f2b2\COMCTL32.dll
0x74f00000 - 0x74f57000 	C:\Windows\syswow64\SHLWAPI.dll
0x753a0000 - 0x75400000 	C:\Windows\system32\IMM32.DLL
0x76bd0000 - 0x76c9c000 	C:\Windows\syswow64\MSCTF.dll
0x599b0000 - 0x59a6f000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\msvcr100.dll
0x591c0000 - 0x59556000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\client\jvm.dll
0x729b0000 - 0x729b7000 	C:\Windows\system32\WSOCK32.dll
0x76ec0000 - 0x76ef5000 	C:\Windows\syswow64\WS2_32.dll
0x77790000 - 0x77796000 	C:\Windows\syswow64\NSI.dll
0x73740000 - 0x73772000 	C:\Windows\system32\WINMM.dll
0x76a20000 - 0x76a25000 	C:\Windows\syswow64\PSAPI.DLL
0x64430000 - 0x6443c000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\verify.dll
0x64400000 - 0x64421000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\java.dll
0x643e0000 - 0x64400000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\instrument.dll
0x5a960000 - 0x5a973000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\zip.dll
0x759f0000 - 0x7663a000 	C:\Windows\syswow64\SHELL32.dll
0x76890000 - 0x769ec000 	C:\Windows\syswow64\ole32.dll
0x73fb0000 - 0x73fbb000 	C:\Windows\system32\profapi.dll
0x5a940000 - 0x5a954000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\net.dll
0x71230000 - 0x7126c000 	C:\Windows\system32\mswsock.dll
0x71990000 - 0x71996000 	C:\Windows\System32\wship6.dll
0x731d0000 - 0x731e0000 	C:\Windows\system32\NLAapi.dll
0x72b10000 - 0x72b20000 	C:\Windows\system32\napinsp.dll
0x72af0000 - 0x72b02000 	C:\Windows\system32\pnrpnsp.dll
0x72ae0000 - 0x72aed000 	C:\Windows\system32\wshbth.dll
0x711e0000 - 0x71224000 	C:\Windows\system32\DNSAPI.dll
0x72ad0000 - 0x72ad8000 	C:\Windows\System32\winrnr.dll
0x719a0000 - 0x719a5000 	C:\Windows\System32\wshtcpip.dll
0x723d0000 - 0x723ec000 	C:\Windows\system32\IPHLPAPI.DLL
0x73df0000 - 0x73df7000 	C:\Windows\system32\WINNSI.DLL
0x711d0000 - 0x711d6000 	C:\Windows\system32\rasadhlp.dll
0x72970000 - 0x729a8000 	C:\Windows\System32\fwpuclnt.dll
0x72e30000 - 0x72e42000 	C:\Windows\system32\dhcpcsvc.DLL
0x72b20000 - 0x72b2d000 	C:\Windows\system32\dhcpcsvc6.DLL
0x64db0000 - 0x64dba000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\management.dll
0x73f70000 - 0x73f86000 	C:\Windows\system32\CRYPTSP.dll
0x73f30000 - 0x73f6b000 	C:\Windows\system32\rsaenh.dll
0x73fc0000 - 0x73fd7000 	C:\Windows\system32\USERENV.dll
0x599a0000 - 0x599af000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\nio.dll
0x59980000 - 0x599a0000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\sunec.dll
0x59970000 - 0x59979000 	C:\Program Files (x86)\Java\jdk1.8.0\jre\bin\sunmscapi.dll
0x766e0000 - 0x767fe000 	C:\Windows\syswow64\CRYPT32.dll
0x75070000 - 0x7507c000 	C:\Windows\syswow64\MSASN1.dll
0x59960000 - 0x5996d000 	C:\dev\rebel\jr-autotest\tmp\jrebel-temp\951e9a1498e2fd852429034485eff802\temp\IdeaWin32.dll
0x73d90000 - 0x73ddc000 	C:\Windows\system32\apphelp.dll
0x72ce0000 - 0x72dcb000 	C:\Windows\system32\dbghelp.dll

VM Arguments:
jvm_args: -Xbootclasspath/p:tmp/rebelboot.jar -Drebel.log.trace=true -Drebel.log.perf_on_exit=true -javaagent:.\jrebel.jar -Drebel.resource_cache=false -Drebel.plugin=plugin.Plugin -Drebel.fatal_plugin_loading=true -Drebel.stats=false -Drebel.disable_update=true -Drebel.usage_reporting=false -Djava.io.tmpdir=tmp -Drebel.enable_test_hacks=true -Dtest.timeout=60000 -Drunner.jar=C:\dev\rebel\jr-autotest/build/jdk1.8.0/runner.jar -Djdk.home=C:\Program Files (x86)\Java\jdk1.8.0 -Dtest.src.dir=C:\dev\rebel\jr-autotest/incSources/smokeTests/testEnabled -Dtest.tmp.dir=C:\dev\rebel\jr-autotest/build/inc/tmp/smokeTests/testEnabled -Dtest.build.dir=C:\dev\rebel\jr-autotest/build/inc/smokeTests/testEnabled -Dtest.jdk.name=jdk1.8.0 -Dtest.build.classpath=C:\dev\rebel\jr-autotest\build\jdk1.8.0\runner.jar;C:\dev\rebel\jr-autotest\build\jdk1.8.0\unversioned.jar;C:\dev\rebel\jr-autotest\lib\ant-contrib.jar;C:\dev\rebel\jr-autotest\lib\asm.jar;C:\dev\rebel\jr-autotest\lib\cglib-src.jar;C:\dev\rebel\jr-autotest\lib\cglib.jar;C:\dev\rebel\jr-autotest\lib\commons-beanutils-1.7.0.jar;C:\dev\rebel\jr-autotest\lib\commons-logging.jar;C:\dev\rebel\jr-autotest\lib\freemarker.jar;C:\dev\rebel\jr-autotest\lib\guice-1.0.jar;C:\dev\rebel\jr-autotest\lib\j2ee-1.4.jar;C:\dev\rebel\jr-autotest\lib\javassist-3.8.0.GA.jar;C:\dev\rebel\jr-autotest\lib\jboss-seam-2.1.1.jar;C:\dev\rebel\jr-autotest\lib\jboss-serialization.jar;C:\dev\rebel\jr-autotest\lib\jr-javassist-3.18.0-GA-java4-zt.jar;C:\dev\rebel\jr-autotest\lib\jr-sdk-5.3.3-SNAPSHOT.jar;C:\dev\rebel\jr-autotest\lib\jr-utils-5.3.3-SNAPSHOT.jar;C:\dev\rebel\jr-autotest\lib\junit.jar;C:\dev\rebel\jr-autotest\lib\log4j-1.2.15.jar;C:\dev\rebel\jr-autotest\lib\scala-compiler-2.9.1.jar;C:\dev\rebel\jr-autotest\lib\scala-library-2.9.1.jar;C:\dev\rebel\jr-autotest\lib\spring-2.5.6.jar;C:\dev\rebel\jr-autotest\lib\spring-test-dir.jar;C:\dev\rebel\jr-autotest\lib\spring-test.jar;C:\dev\rebel\jr-autotest\lib\spring-webmvc.jar;C:\dev\rebel\jr-autotest\lib\trove.jar;C:\dev\rebel\jr-autotest\lib\wicket-1.4.1.jar;C:\dev\rebel\jr-autotest\lib\wicket-ioc-1.4.1.jar;C:\dev\rebel\jr-autotest\lib\wicket-spring-1.4.1.jar -Dtest.compiler.arg= -Dtest.method=Test.test() 
java_command: test.run.CLI
java_class_path (initial): C:\dev\rebel\jr-autotest\build\jdk1.8.0\runner.jar;C:\dev\rebel\jr-autotest\build\jdk1.8.0\unversioned.jar;C:\dev\rebel\jr-autotest\lib\ant-contrib.jar;C:\dev\rebel\jr-autotest\lib\asm.jar;C:\dev\rebel\jr-autotest\lib\cglib-src.jar;C:\dev\rebel\jr-autotest\lib\cglib.jar;C:\dev\rebel\jr-autotest\lib\commons-beanutils-1.7.0.jar;C:\dev\rebel\jr-autotest\lib\commons-logging.jar;C:\dev\rebel\jr-autotest\lib\freemarker.jar;C:\dev\rebel\jr-autotest\lib\guice-1.0.jar;C:\dev\rebel\jr-autotest\lib\j2ee-1.4.jar;C:\dev\rebel\jr-autotest\lib\javassist-3.8.0.GA.jar;C:\dev\rebel\jr-autotest\lib\jboss-seam-2.1.1.jar;C:\dev\rebel\jr-autotest\lib\jboss-serialization.jar;C:\dev\rebel\jr-autotest\lib\jr-javassist-3.18.0-GA-java4-zt.jar;C:\dev\rebel\jr-autotest\lib\jr-sdk-5.3.3-SNAPSHOT.jar;C:\dev\rebel\jr-autotest\lib\jr-utils-5.3.3-SNAPSHOT.jar;C:\dev\rebel\jr-autotest\lib\junit.jar;C:\dev\rebel\jr-autotest\lib\log4j-1.2.15.jar;C:\dev\rebel\jr-autotest\lib\scala-compiler-2.9.1.jar;C:\dev\rebel\jr-autotest\lib\scala-library-2.9.1.jar;C:\dev\rebel\jr-autotest\lib\spring-2.5.6.jar;C:\dev\rebel\jr-autotest\lib\spring-test-dir.jar;C:\dev\rebel\jr-autotest\lib\spring-test.jar;C:\dev\rebel\jr-autotest\lib\spring-webmvc.jar;C:\dev\rebel\jr-autotest\lib\trove.jar;C:\dev\rebel\jr-autotest\lib\wicket-1.4.1.jar;C:\dev\rebel\jr-autotest\lib\wicket-ioc-1.4.1.jar;C:\dev\rebel\jr-autotest\lib\wicket-spring-1.4.1.jar;C:\dev\rebel\jr-autotest\build\inc\smokeTests\testEnabled;.\jrebel.jar
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=C:/Program Files (x86)/Java/jdk1.7.0_10
PATH=C:\cygwin\usr\local\bin;C:\cygwin\bin;C:\Program Files (x86)\Estonian ID Card;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files (x86)\Java\jdk1.7.0_10\bin;C:\programs\apache-maven-3.1.1\bin;C:\programs\ant-1.8.2\bin;C:\programs\groovy-2.2.2\bin;C:\Program Files (x86)\QT Lite\QTSystem;C:\Program Files (x86)\Git\cmd;C:\Program Files\TortoiseHg;C:\dev\f\play-1.2.7;C:\Program Files (x86)\OpenVPN\bin
USERNAME=lauri
SHELL=/bin/bash
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 37 Stepping 5, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 7 , 64 bit Build 7601 Service Pack 1

CPU:total 4 (2 cores per cpu, 2 threads per core) family 6 model 37 stepping 5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, aes, clmul, ht, tsc, tscinvbit

Memory: 4k page, physical 8247124k(441800k free), swap 16492388k(7292104k free)

vm_info: Java HotSpot(TM) Client VM (25.0-b70) for windows-x86 JRE (1.8.0-b132), built on Mar  4 2014 03:51:15 by "java_re" with MS VC++ 10.0 (VS2010)

time: Thu Apr 03 16:10:44 2014
elapsed time: 3 seconds


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
-server -XX:-TieredCompilation
or
-XX:CompileCommand=exclude,java/lang/System$2,invokeFinalize


Comments
Fix verified by regression test.
07-08-2017

Evaluation: C1 compiles a call to Object.finalize() in 'java.lang.ref.Finalizer::runFinalizer'. To determine if the call is monomorphic, the compiler searches through the subclasses of Object until it finds a class that overrides finalize(). This check is performed in 'ClassHierarchyWalker::find_witness_anywhere' by calling 'is_witness(Klass* k)' on the subclasses. After casting with 'InstanceKlass::cast(k)' the (Sub-)Klass k is treated as an InstanceKlass and 'InstanceKlass::find_method' is called. The crash happens in 'binary_search' when a subclass k is not an InstanceKlass but an ObjectArrayKlass and therefore '_methods' is NULL. Why didn't that bug show up earlier? The method Object.finalize() is usually overriden by the subclasses 'java.lang.ClassLoader$NativeLibrary' and 'java.lang.Enum' which are loaded during startup. That means a call to Object.finalize() is never treated as monomorphic and 'ClassHierarchyWalker::find_witness_anywhere' returns before encountering an ObjectArrayKlass in the subclass hierarchy of Object. The failure only occurs in an internal test environment for JRebel [1]. According to the core file of the crash, the usual class hierarchy of the Java Runtime Environment was changed by the framework. For example, java.lang.String is no longer a subclass of java.lang.Object but of another class called 'JaveleonObject' [2]. Especially the two overriding classes 'ClassLoader$NativeLibrary' and 'Enum' are not subclasses of Object. This leads to the crash because C1 encounters an ObjectArrayKlass in the subclass hierarchy. Of course, this bug could also show up if the sequence of subclasses in the 'Klass::subklass()' list changes. This bug is not OS or platform specific. [1] http://zeroturnaround.com/software/jrebel/ [2] https://bugs.openjdk.java.net/secure/attachment/23360/replay.log
11-11-2014

Attempt to replay compilation fails because of missing class files. Building replay jars with CLHSDB fails with "AssertionFailure: invalid cp index 0 140". JDK-8023477 does not fix the issue.
10-11-2014

[~thartmann], can you take a look?
04-11-2014

Crash is in C1 with Tiered Compilation enabled. There are no steps to reproduce, but it looks like it was a JRebel app or its tests. ILW=(crash)-(Win7_x64, happens only with internal test harness)-(workaround exist)=HLL=P4
12-08-2014