System.out.println lead to assert(resolved_method->method_holder()->is_linked()) failed: must be linked
Leslie Zhai
zhaixiang at loongson.cn
Thu Dec 13 02:58:06 UTC 2018
Hi Coleen,
System.out.println was added on purpose:
diff -r 8449dc3cbebe src/java.base/share/classes/java/lang/Object.java
--- a/src/java.base/share/classes/java/lang/Object.java Mon Nov 12
15:34:21 2018 +0800
+++ b/src/java.base/share/classes/java/lang/Object.java Thu Dec 13
10:40:33 2018 +0800
@@ -47,7 +47,9 @@
* Constructs a new object.
*/
@HotSpotIntrinsicCandidate
- public Object() {}
+ public Object() {
+ System.out.println("DEBUG: on purpose");
+ }
/**
* Returns the runtime class of this {@code Object}. The returned
----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
Then it lead to the assertion error, similar as:
https://bugs.openjdk.java.net/browse/JDK-8069005
$ ./build/linux-x86_64-normal-server-fastdebug/jdk/bin/java -version
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/linkResolver.cpp:1380
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error
(/home/zhaixiang/jdk/src/hotspot/share/interpreter/linkResolver.cpp:1380),
pid=11090, tid=11091
# assert(resolved_method->method_holder()->is_linked()) failed: must be
linked
----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
But just add java.lang.Object initialization in bootstrapping the jvm
couldn't fix the issue:
diff -r 2c5bf37c8f8e src/hotspot/share/runtime/thread.cpp
--- a/src/hotspot/share/runtime/thread.cpp Thu Dec 06 20:39:03 2018 +0800
+++ b/src/hotspot/share/runtime/thread.cpp Thu Dec 13 10:44:56 2018 +0800
@@ -3524,6 +3524,7 @@
// Initialize java_lang.System (needed before creating the thread)
initialize_class(vmSymbols::java_lang_System(), CHECK);
// The VM creates & returns objects of this class. Make sure it's
initialized.
+ initialize_class(vmSymbols::java_lang_Object(), CHECK);
initialize_class(vmSymbols::java_lang_Class(), CHECK);
initialize_class(vmSymbols::java_lang_ThreadGroup(), CHECK);
Handle thread_group = create_initial_thread_group(CHECK);
Please give me some advice how to fix the issue, thanks a lot!
Regards,
Leslie Zhai
More information about the hotspot-dev
mailing list