JDK-8176325 : Failures in g1HeapVerifier.cpp
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2017-03-07
  • Updated: 2017-03-10
  • Resolved: 2017-03-10
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 9
9Resolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
[2017-03-07T04:30:46.09] # A fatal error has been detected by the Java Runtime Environment:
[2017-03-07T04:30:46.09] #
[2017-03-07T04:30:46.09] #  Internal Error (/hotspot/src/share/vm/gc/g1/g1HeapVerifier.cpp:413), pid=12761, tid=12806
[2017-03-07T04:30:46.09] #  guarantee(!failures) failed: there should not have been any failures
[2017-03-07T04:30:46.09] #



Earlier in the log we can see plenty of these messages. Unclear if they are related.

[2017-03-07T04:30:32.52] /nsk/jvmti/RedefineClasses/StressRedefine/stressRedefine.c: Failed to call RedefineClasses():
[2017-03-07T04:30:32.52] 	the function returned error 69: JVMTI_ERROR_NAMES_DONT_MATCH
[2017-03-07T04:30:32.52] 	For more info about this error see the JVMTI spec.

Comments
This bug has not reproduced after 24 hours of running the failing test after applying the fix for JDK-8176100. Closing as dup.
10-03-2017

I've managed to reproduce this but applying the fix for JDK-8176100 appears to resolve the issue. I'll leave it running overnight and if the problem still doesn't reproduce I'll consider this a dup of JDK-8176100.
09-03-2017

The suspected reason for this cropping up now is the increased usage of jweak due to JDK-8162795
08-03-2017

[2017-03-07T04:30:45.79] [110.303s][error][gc,verify] ---------- [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] Field 0xd57fe850 of live obj 0xd57fe840 in region [0xd5700000, 0xd5800000) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] [Ljava.lang.Object; [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] {0xd57fe840} - klass: 'java/lang/Object'[] [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - length: 2 [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - 0 : a 'java/lang/Long'{0xd57fe858} = -2 [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - 1 : a 'java/lang/invoke/MemberName'{0xc5cc2298} = {method} {0xbd7eb568} 'guard_LII_Z' '(Ljava/lang/invoke/VarHandle;Ljava/lang/Object;IILjava/lang/invoke/VarHandle$AccessDescriptor;)Z' in 'java/lang/invoke/VarHandleGuards' [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] points to dead obj 0xc5cc2298 in region [0xc5c00000, 0xc5d00000) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] java.lang.invoke.MemberName [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] {0xc5cc2298} - klass: 'java/lang/invoke/MemberName' [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - ---- fields (total size 10 words): [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - private 'flags' 'I' @8 100728856 (6010018) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - private strict 'clazz' 'Ljava/lang/Class;' @20 a 'java/lang/Class'{0xc26ef428} = 'java/lang/invoke/VarHandleGuards' (c26ef428) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - private 'name' 'Ljava/lang/String;' @24 "guard_LII_Z"{0xc57001a0} (c57001a0) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - private 'type' 'Ljava/lang/Object;' @28 a 'java/lang/invoke/MethodType'{0xc58eb8e8} = (Ljava/lang/invoke/VarHandle;Ljava/lang/Object;IILjava/lang/invoke/VarHandle$AccessDescriptor;)Z (c58eb8e8) [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] - 'resolution' 'Ljava/lang/Object;' @32 NULL [2017-03-07T04:30:45.79] [110.303s][error][gc,verify] ---------- The MemberNameTable is an array of jweaks so I suspect that this is a symptom of JDK-8176100. The JVMTI error messages should be unrelated to the GC hitting a verification failure.
08-03-2017