Relates :
|
|
Relates :
|
|
Relates :
|
After updating references, verifier should run before cset is destroyed. Otherwise, verifier may output some confusing message, e.g. # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/home/zgu/ws/jdk/src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp:91), pid=3813852, tid=3813887 # Error: After Updating References, Reachable; Object should be in active region Referenced from: interior location: 0x00000000d0d64028 0x00000000d0d63ea8 - klass 0x00000008000362f8 jdk.internal.vm.StackChunk allocated after mark start after update watermark marked strong marked weak not in collection set mark: mark(is_neutral no_hash age=0) region: | 53|R |BTE d0d40000, d0d80000, d0d80000|TAMS d0d40000|UWM d0d40000|U 256K|T 256K|G 0B|S 0B|L 0B|CP 0 Object: 0x00000000e4ae56b0 - klass 0x0000000801001510 Skynet$Channel not allocated after mark start not after update watermark marked strong not marked weak not in collection set <==== this is confusing, since the object has legit forwardee mark: marked(0x00000000ffd6b82b) region: | 1323|T |BTE e4ac0000, e4b00000, e4b00000|TAMS e4b00000|UWM e4b00000|U 256K|T 256K|G 0B|S 0B|L 162K|CP 0 Forwardee: 0x00000000ffd6b828 - safe print, no details region: | 3061|R |BTE ffd40000, ffd80000, ffd80000|TAMS ffd40000|UWM ffd80000|U 256K|T 0B|G 256K|S 0B|L 0B|CP 0 It shows that object is not in cset and has legit forwardee - confusing.
|