Shenandoah crash
Lennart Börjeson
lennart.borjeson at cinnober.com
Thu Feb 1 14:33:36 UTC 2018
1 feb. 2018 kl. 14:53 skrev Aleksey Shipilev <shade at redhat.com>:
>
> Thanks for the bug report!
>
> On 02/01/2018 01:05 PM, Lennart Börjeson wrote:
>> #
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> # Internal Error (/Users/lennartb/RaT/openJDK/shenandoah-jdk10/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:184), pid=37194, tid=11267
>> # Error: Shenandoah verification failed; After Mark, Roots: Must be marked in complete bitmap
>>
>> Referenced from:
>> interior location: 0x00007faf6cd0d3c0
>> outside of Java heap
>> 0x00007faf6cd0d3c0 is a weak global jni handle
>
> ^^^^^^^^^^^^^^^^^^^^^^
>
> This one seems enough of the smoking gun to chase the bug for now. It must be the bug in handling
> the weak global JNI handles: we apparently miss that root during mark?
>
> If we cannot find any obvious bugs there and/or fail to write a reproducer, we would need to work to
> understanding the failing application better. We are going to FOSDEM for the rest of the week, so --
> barring heroics of anyone here -- we would be able to look at it next week.
And then you'll be at JFokus, won't you? CU!
>
>> Time: Thu Feb 1 12:36:33 2018 CET elapsed time: 1471 seconds (0d 0h 24m 31s)
>
> You waited for 24 minutes for this bug to appear, right? I wonder if you can make it more frequent
> with -XX:ShenandoahGCHeuristics=aggressive.
>
Somewhat faster crash (but another cause?) with aggressive (top of hs-log):
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/Users/lennartb/RaT/openJDK/shenandoah-jdk10/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:184), pid=4735, tid=11011
# Error: Shenandoah verification failed; After Full GC, Marked: Object klass pointer must go to metaspace
Referenced from:
interior location: 0x00000007be78012c
0x00000007be780120 - klass 0x00000007c0251f58 java.time.OffsetDateTime
allocated after complete mark start
allocated after next mark start
marked complete
marked next
not in collection set
region: |0x00007fa60df79b00| 4089|P |BTE 0x00000007be400000, 0x00000007be800000, 0x00000007be800000|U 100%|T 0%|G 0%|S 100%|L 100%|FTS 36086|LTS 59995| |CP 1|TAMS 0x00000007be400000, 0x00000007be780018|
Object:
0x00000007bc5c0f00 - safe print, no details
region: |0x00007fa60df78f80| 4081|EC |BTE 0x00000007bc400000, 0x00000007bc400000, 0x00000007bc800000|U 0%|T 0%|G 0%|S 0%|L 0%|FTS 0|LTS 0| |CP 0|TAMS 0x00000007bc400000, 0x00000007bc400000|
#
# JRE version: OpenJDK Runtime Environment (10.0) (fastdebug build 10-internal+0-adhoc.lennartb.shenandoah-jdk10)
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 10-internal+0-adhoc.lennartb.shenandoah-jdk10, mixed mode, tiered, compressed oops, Shenandoah gc, bsd-amd64)
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
--------------- S U M M A R Y ------------
Command Line: --add-modules=java.xml.bind -Xmx16G -XX:+UseShenandoahGC -XX:+ShenandoahVerify -Xlog:gc=off,gc+ergo=off -DrunningInEclipse=true -XX:ShenandoahGCHeuristics=aggressive -Dfile.encoding=UTF-8 com.cinnober.bmf.gui.Main --console=false
Host: cft757eris.local, MacBookPro10,1 x86_64 2400 MHz, 8 cores, 16G, Darwin 17.4.0
Time: Thu Feb 1 15:27:41 2018 CET elapsed time: 605 seconds (0d 0h 10m 5s)
--------------- T H R E A D ---------------
Current thread (0x00007fa60f805000): GCTaskThread "Shenandoah GC Threads#2" [stack: 0x0000700002a7a000,0x0000700002b7a000] [id=11011]
Stack: [0x0000700002a7a000,0x0000700002b7a000], sp=0x0000700002b755c0, free space=1005k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0xbff15e] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x4d0
V [libjvm.dylib+0xbff858] VMError::report_and_die(Thread*, char const*, int, char const*, char const*, __va_list_tag*)+0x3c
V [libjvm.dylib+0x44f942] report_vm_error(char const*, int, char const*, char const*, ...)+0xc8
V [libjvm.dylib+0xb0b266] ShenandoahVerifyOopClosure::print_failure(ShenandoahVerifyOopClosure::SafeLevel, oop, char const*)+0x1018
V [libjvm.dylib+0xb0a22e] ShenandoahVerifyOopClosure::verify(ShenandoahVerifyOopClosure::SafeLevel, oop, bool, char const*)+0x4c
V [libjvm.dylib+0xb08f0d] ShenandoahVerifyOopClosure::verify_oop(oop)+0x247
V [libjvm.dylib+0xb0bbe3] void ShenandoahVerifyOopClosure::verify_oop_at<unsigned int>(unsigned int*, oop)+0x3b
V [libjvm.dylib+0xb0bac5] void ShenandoahVerifyOopClosure::do_oop_work<unsigned int>(unsigned int*)+0x111
V [libjvm.dylib+0x61b7c4] InstanceKlass::oop_oop_iterate_v(oop, ExtendedOopClosure*)+0x106
V [libjvm.dylib+0xb08566] ShenandoahVerifyOopClosure::verify_oops_from(oop)+0x6a
V [libjvm.dylib+0xb0c3ca] ShenandoahVerifierMarkedRegionTask::verify_and_follow(HeapWord*, Stack<ShenandoahVerifierTask, (MemoryType)5>&, ShenandoahVerifyOopClosure&, unsigned long*)+0x154
V [libjvm.dylib+0xb0c1f9] ShenandoahVerifierMarkedRegionTask::work_regular(ShenandoahHeapRegion*, Stack<ShenandoahVerifierTask, (MemoryType)5>&, ShenandoahVerifyOopClosure&)+0xcf
V [libjvm.dylib+0xb0bfb8] ShenandoahVerifierMarkedRegionTask::work(unsigned int)+0x1d6
V [libjvm.dylib+0xc58f46] GangWorker::run_task(WorkData)+0x62
V [libjvm.dylib+0xc59009] GangWorker::loop()+0x25
V [libjvm.dylib+0x958d5e] thread_native_entry(Thread*)+0x135
>> # Java VM: OpenJDK 64-Bit Server VM (fastdebug 10-internal+0-adhoc.lennartb.shenandoah-jdk10)
>
> Also, you don't need fastdebug build to run with -XX:+ShenandoahVerify, and the failure like this
> would be caught in release build as well.
>
> Thanks,
> -Aleksey
>
Best regards,
/Lennart
More information about the shenandoah-dev
mailing list