-
Bug
-
Resolution: Duplicate
-
P4
-
None
-
8
-
generic
-
generic
ADDITIONAL SYSTEM INFORMATION :
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
A DESCRIPTION OF THE PROBLEM :
I ran a regression test on JDK8u392 and found that the JVM crashed without any options.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/data//jdk8u/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp:4504), pid=97353, tid=0x00007fcda0434700
# assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_default_methods()))) failed: should be default method
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
# Failed to write core dump. 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
#
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
java compiler.c1.TestStaticInterfaceMethodCall
ACTUAL -
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/c1_GraphBuilder.cpp:4504
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/data//jdk8u/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp:4504), pid=97353, tid=0x00007fcda0434700
# assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_default_methods()))) failed: should be default method
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home//repository//toreport/TestStaticInterfaceMethodCall_09_22_23_53_15/hs_err_pid97353.log
[thread 140521132734208 also had an error]
#
# Compiler replay data is saved as:
# /home//repository//toreport/TestStaticInterfaceMethodCall_09_22_23_53_15/replay_pid97353.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
---------- BEGIN SOURCE ----------
package compiler.c1;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
public class TestStaticInterfaceMethodCall {
static final MethodHandle MH_m;
static {
try {
MH_m = MethodHandles.lookup().findStatic(MyInterface.class, "m", MethodType.methodType(void.class));
} catch (ReflectiveOperationException e) {
throw new BootstrapMethodError(e);
}
}
public static void main(String[] args) throws Throwable {
for (int i = 0; i < 20_000; i++) {
test_call_by_method_handle();
test_direct_call();
}
}
static void test_call_by_method_handle() throws Throwable {
MH_m.invokeExact();
}
static void test_direct_call() {
MyInterface.m();
}
}
interface MyInterface {
static void m() {}
}
---------- END SOURCE ----------
FREQUENCY : always
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
A DESCRIPTION OF THE PROBLEM :
I ran a regression test on JDK8u392 and found that the JVM crashed without any options.
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/data//jdk8u/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp:4504), pid=97353, tid=0x00007fcda0434700
# assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_default_methods()))) failed: should be default method
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
# Failed to write core dump. 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
#
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
java compiler.c1.TestStaticInterfaceMethodCall
ACTUAL -
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/c1_GraphBuilder.cpp:4504
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/data//jdk8u/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp:4504), pid=97353, tid=0x00007fcda0434700
# assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_default_methods()))) failed: should be default method
#
# JRE version: OpenJDK Runtime Environment (8.0_392) (build 1.8.0_392-internal-fastdebug--b00)
# Java VM: OpenJDK 64-Bit Server VM (25.392-b00-fastdebug mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home//repository//toreport/TestStaticInterfaceMethodCall_09_22_23_53_15/hs_err_pid97353.log
[thread 140521132734208 also had an error]
#
# Compiler replay data is saved as:
# /home//repository//toreport/TestStaticInterfaceMethodCall_09_22_23_53_15/replay_pid97353.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
---------- BEGIN SOURCE ----------
package compiler.c1;
import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
public class TestStaticInterfaceMethodCall {
static final MethodHandle MH_m;
static {
try {
MH_m = MethodHandles.lookup().findStatic(MyInterface.class, "m", MethodType.methodType(void.class));
} catch (ReflectiveOperationException e) {
throw new BootstrapMethodError(e);
}
}
public static void main(String[] args) throws Throwable {
for (int i = 0; i < 20_000; i++) {
test_call_by_method_handle();
test_direct_call();
}
}
static void test_call_by_method_handle() throws Throwable {
MH_m.invokeExact();
}
static void test_direct_call() {
MyInterface.m();
}
}
interface MyInterface {
static void m() {}
}
---------- END SOURCE ----------
FREQUENCY : always
- duplicates
-
JDK-8239083 C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method");
- Resolved