jaokim / prao

0 stars 0 forks source link

Hotspot kraschar #1

Open jaokim opened 7 months ago

jaokim commented 7 months ago

Hotspot kraschar efter ungefär 860000 rundor i Reproducer-loopen.

Vi kör med senaste versionen från https://github.com/jaokim/jdk/tree/prao-2024

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (no source info available), pid=23128, tid=24992
#
# JRE version: OpenJDK Runtime Environment (23.0) (build 23-internal-2024-02-12-1101215.JSNORDST...)
# Java VM: OpenJDK 64-Bit Server VM (23-internal-2024-02-12-1101215.JSNORDST..., mixed mode, tiered, compressed oops, compressed class ptrs, serial gc, windows-amd64)
# No core dump will be written. Minidumps are not enabled by default on client versions of Windows
#
# 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: -Xmx100M -XX:+UseSerialGC -Xlog:gc=info Reproducer.java

Host: Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz, 12 cores, 31G,  Windows 11 , 64 bit Build 22621 (10.0.22621.2506)
Time: Tue Feb 13 13:21:28 2024 Eur elapsed time: 56.440339 seconds (0d 0h 0m 56s)

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

Current thread (0x0000027492ceffc0):  VMThread "VM Thread"          [id=24992, stack(0x000000ef32100000,0x000000ef32200000) (1024K)]

Stack: [0x000000ef32100000,0x000000ef32200000]
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0x6e1ba9]  os::win32::platform_print_native_stack+0xd9
V  [jvm.dll+0x875263]  VMError::report+0xd93
V  [jvm.dll+0x8776ee]  VMError::report_and_die+0x7be
V  [jvm.dll+0x877d77]  VMError::report_and_die+0x47
V  [jvm.dll+0x27fce7]  report_vm_error+0x57
V  [jvm.dll+0x669f56]  MarkSweep::mark_object+0x1d6
V  [jvm.dll+0x6684b2]  MarkSweep::mark_and_push<enum narrowOop>+0x32
V  [jvm.dll+0x668b9a]  OopOopIterateDispatch<MarkAndPushClosure>::Table::oop_oop_iterate<InstanceKlass,enum narrowOop>+0x8a
V  [jvm.dll+0x669b11]  MarkSweep::follow_stack+0x51
V  [jvm.dll+0x6cd527]  OopMapDo<OopClosure,DerivedOopClosure,SkipNullValue>::iterate_oops_do<RegisterMap>+0x287 
V  [jvm.dll+0x6ce080]  ImmutableOopMap::oops_do+0x70 
V  [jvm.dll+0x3175bf]  frame::oops_do_internal+0x20f
V  [jvm.dll+0x3f3585]  JavaThread::oops_do_frames+0x105
V  [jvm.dll+0x81d416]  Thread::oops_do+0x86
V  [jvm.dll+0x826d1f]  Threads::oops_do+0x3f 
V  [jvm.dll+0x7493c8]  SerialHeap::process_roots+0x48
V  [jvm.dll+0x38d5eb]  GenMarkSweep::phase1_mark+0xfb 
V  [jvm.dll+0x38cfed]  GenMarkSweep::invoke_at_safepoint+0xdd  
V  [jvm.dll+0x81b766]  TenuredGeneration::collect+0x86 
V  [jvm.dll+0x747775]  SerialHeap::collect_generation+0x295 
V  [jvm.dll+0x747d6d]  SerialHeap::do_collection+0x50d
V  [jvm.dll+0x74952e]  SerialHeap::satisfy_failed_allocation+0xae 
V  [jvm.dll+0x749b3a]  VM_GenCollectForAllocation::doit+0x4a 
V  [jvm.dll+0x87dc40]  VM_Operation::evaluate+0x100 
V  [jvm.dll+0x87efc7]  VMThread::inner_execute+0x287  
V  [jvm.dll+0x87f540]  VMThread::loop+0x270 
V  [jvm.dll+0x87f7e3]  VMThread::run+0x63
V  [jvm.dll+0x81d0ab]  Thread::call_run+0xcb 
V  [jvm.dll+0x6e0205]  thread_native_entry+0x95
C  [ucrtbase.dll+0x29363]  (no source info available)
C  [KERNEL32.DLL+0x1257d]  (no source info available)
C  [ntdll.dll+0x5aa58]  (no source info available)

JavaThread 0x0000027490e300d0 (nid = 27908) was being processed
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::_new_array_Java 0x000002749a945229
J 1978% c2 Reproducer.main([Ljava/lang/String;)V (127 bytes) @ 0x000002749aed8388 [0x000002749aed82e0+0x00000000000000a8]
j  java.lang.invoke.LambdaForm$DMH+0x000000000d0ec000.invokeStatic(Ljava/lang/Object;Ljava/lang/Object;)V+10 java.base
j  java.lang.invoke.LambdaForm$MH+0x000000000d223000.invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+33 java.base
j  java.lang.invoke.LambdaForm$MH+0x000000000d223400.invokeExact_MT(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;+20 java.base
j  jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+55 java.base
j  jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+23 java.base
j  java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+102 java.base
j  com.sun.tools.javac.launcher.SourceLauncher.execute(Ljava/util/List;[Ljava/lang/String;Lcom/sun/tools/javac/launcher/MemoryContext;)Ljava/lang/Class;+382 jdk.compiler
j  com.sun.tools.javac.launcher.SourceLauncher.run([Ljava/lang/String;[Ljava/lang/String;)Lcom/sun/tools/javac/launcher/Result;+66 jdk.compiler
j  com.sun.tools.javac.launcher.SourceLauncher.main([Ljava/lang/String;)V+17 jdk.compiler
v  ~StubRoutines::call_stub 0x000002749a84100d
VM_Operation (0x000000ef31ffef50): GenCollectForAllocation, mode: safepoint, requested by thread 0x0000027490e300d0
jaokim commented 7 months ago

Det finns en reproducer: https://github.com/jaokim/prao/blob/main/Reproducer.java

jaokim commented 7 months ago

Det verkar mest hända om man använder SerialGC och bara tillåter en 100 MB stor heap.