JDK-8225620 : assert(false) failed: DEBUG MESSAGE: MemberName required for invokeVirtual etc
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 13
  • Priority: P4
  • Status: Closed
  • Resolution: Not an Issue
  • CPU: sparc
  • Submitted: 2019-06-11
  • Updated: 2023-11-06
  • Resolved: 2020-08-12
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.
Other
tbdResolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
on solaris-sparcv9-fastdebug builds, compiler/types/correctness/ tests hit the following assert:

=============== DEBUG MESSAGE: MemberName required for invokeVirtual etc. ================ 

# To suppress the following error report, specify this argument 
# after -XX: or in .hotspotrc: SuppressErrorAt=/macroAssembler_sparc.cpp:1473 
# 
# A fatal error has been detected by the Java Runtime Environment: 
# 
# Internal Error (/scratch/opt/mach5/mesos/work_dir/ce2afd05-7e59-4fc6-8e22-904badf601db/workspace/open/src/hotspot/cpu/sparc/macroAssembler_sparc.cpp:1473), pid=31777, tid=2 
# assert(false) failed: DEBUG MESSAGE: MemberName required for invokeVirtual etc. 
# 
# JRE version: Java(TM) SE Runtime Environment (13.0) (fastdebug build 13-internal+0-2019-06-05-1909010.igor.ignatyev.jdk) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 13-internal+0-2019-06-05-1909010.igor.ignatyev.jdk, mixed mode, sharing, tiered, compressed oops, g1 gc, solaris-sparc) 
# Core dump will be written. Default location: /scratch/opt/mach5/mesos/work_dir/1630b6b8-8d96-4431-8aca-29ab9f622716/testoutput/test-support/jtreg_open_test_hotspot_jtreg_compiler_types_correctness/scratch/1/core or core.31777 
# 
Unsupported internal testing APIs have been used. 

# An error report file with more information is saved as: 
# /scratch/opt/mach5/mesos/work_dir/1630b6b8-8d96-4431-8aca-29ab9f622716/testoutput/test-support/jtreg_open_test_hotspot_jtreg_compiler_types_correctness/scratch/1/hs_err_pid31777.log 
# 
# 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: -XX:MaxRAMPercentage=2 -Xbootclasspath/a:. -XX:+IgnoreUnrecognizedVMOptions -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI -XX:CompileCommand=exclude,compiler.ty 
pes.correctness.execution.*::methodNotToCompile -XX:CompileCommand=dontinline,compiler.types.correctness.scenarios.Scenario::collectReturnType -XX:TypeProfileLevel=001 -XX:-UseTypeSpeculation compiler.types.co 
rrectness.CorrectnessTest PARAMETERS 

Host: <hostname>, Sparcv9 64 bit 3600 MHz, 56 cores, 58G, Oracle Solaris 11.3 SPARC 
Time: Wed Jun 5 20:16:29 2019 UTC elapsed time: 1 seconds (0d 0h 0m 1s) 

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

Current thread (0x0000000100137000): JavaThread "main" [_thread_in_Java, id=2, stack(0xffffffff7a400000,0xffffffff7a500000)] 

Stack: [0xffffffff7a400000,0xffffffff7a500000], sp=0xffffffff7a4fe800, free space=1018k 
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code) 
V [libjvm.so+0x20c4184] void VMError::report_and_die(int,const char*,const char*,void*,Thread*,unsigned char*,void*,void*,const char*,int,unsigned long)+0xac4 
V [libjvm.so+0x20c3658] void VMError::report_and_die(Thread*,void*,const char*,int,const char*,const char*,void*)+0x38 
V [libjvm.so+0x13fefd0] void report_vm_error(const char*,int,const char*,const char*,...)+0xf0 
V [libjvm.so+0x1b0f9f0] void MacroAssembler::debug(char*,RegistersForDebugging*)+0x140 
v ~StubRoutines::stop_subroutine 
J 60 java.lang.invoke.MethodHandle.linkToVirtual(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object; java.base@13-internal (0 bytes) @ 0xffffffff69c0580c [0xffffffff69c05760+0 
x00000000000000ac] 
J 60 java.lang.invoke.MethodHandle.linkToVirtual(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/invoke/MemberName;)Ljava/lang/Object; java.base@13-internal (0 bytes) @ 0xffffffff69c057f0 [0xffffffff69c05760+0 
x0000000000000090] 
j compiler.types.correctness.execution.TypeProfile.methodNotToCompile(Lcompiler/types/correctness/scenarios/Scenario;Lcompiler/types/correctness/hierarchies/TypeHierarchy$I;)Ljava/lang/Object;+2
J 307 c2 compiler.types.correctness.execution.TypeProfile.execute(Lcompiler/types/correctness/scenarios/Scenario;)V (58 bytes) @ 0xffffffff69c23c7c [0xffffffff69c23c00+0x000000000000007c] 
j compiler.types.correctness.execution.MethodHandleDelegate.execute(Lcompiler/types/correctness/scenarios/Scenario;)V+12
j compiler.types.correctness.CorrectnessTest.executeTest(Lcompiler/types/correctness/hierarchies/TypeHierarchy;Lcompiler/types/correctness/execution/Execution;Lcompiler/types/correctness/scenarios/Scenario;)Z
+35 
j compiler.types.correctness.CorrectnessTest.runTests(Lcompiler/types/correctness/scenarios/ProfilingType;)Z+432
j compiler.types.correctness.CorrectnessTest.main([Ljava/lang/String;)V+42 
v ~StubRoutines::call_stub 
V [libjvm.so+0x1749528] void JavaCalls::call_helper(JavaValue*,const methodHandle&,JavaCallArguments*,Thread*)+0x438 
V [libjvm.so+0x1823628] void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x368
V [libjvm.so+0x1841ee4] jni_CallStaticVoidMethod+0x484 
C [libjli.so+0x7920] JavaMain+0x880 
C [libjli.so+0xd99c] ThreadJavaMain+0xc
Comments
SPARC port is removed in 15.
12-08-2020

Repurposed this bug to track sparc-specific failures.
28-11-2019

Short summary: PopFrame doesn't recover appendix argument when invocation is performed using method handle linkers (MethodHandle.linkToVirtual/...).
28-11-2019

PopFrame and compiler/types/correctness/ failures are different. I'm reopening JDK-8187143 to track PopFrame issue and will add more details there.
28-11-2019

Thanks, re-targeting to JDK 14.
07-11-2019

I see the same crash in com/sun/jdi/NashornPopFrameTest.java on Linux x64. Does not happen with -Xint. Happens with -XX:TieredStopAtLevel=1. Can be reproduced easily. Not sure if this is the same problem, but I attached the hs-err file
07-11-2019

I've also noticed that I used a wrong bugid in problem list, http://hg.openjdk.java.net/jdk/jdk/rev/ff74a3c584e5 meant to use 8225620.
12-06-2019

Dan has filed JDK-8225670 for assert on linux.
12-06-2019

just an observation, the failures manifest on solairs in every single run, and assert on linux happened once so far.
12-06-2019

These tests have been quarantined since 2014 and were removed from the ProblemList with JDK-8066173. This is an old problem. I can reproduce the crash with JDK 11 (didn't check earlier versions). Deferring to JDK 14 for now, we can still fix it in 13 if there's time.
12-06-2019

[~thartmann] no, I don't have any ideas. Such crashes manifest that last argument into MH linker (MH::linkToVirtual in this case) is ill-formed: not a MemberName instance. (Since hs_err on sparc doesn't contain register file dump, it's hard to say what the actual value is.) Some observations: - there are crashes with and without compiled code on the stack. - there's a fresh crash on Linux as well (with a different assertion though): # Internal Error (open/src/hotspot/share/ci/ciMethodData.hpp:206), pid=3594, tid=3618 # assert(recv == __null || recv->is_klass()) failed: wrong type Considering the tests user WhiteBox API and were disabled for a very long time, a test bug looks like a possible cause as well.
12-06-2019

[~vlivanov], any ideas?
12-06-2019