RFR: 8264337: VM crashed when -XX:+VerifySharedSpaces

Yi Yang yyang at openjdk.java.net
Tue Mar 30 01:57:44 UTC 2021


On Mon, 29 Mar 2021 17:41:30 GMT, Yumin Qi <minqi at openjdk.org> wrote:

>> `java -XX:+VerifySharedSpaces -version` reports an internal error that would crash VM:
>> 
>> [0.113s][error][cds] relocation bitmap CRC error
>> [0.114s][error][cds] relocation bitmap CRC error
>> # To suppress the following error report, specify this argument
>> # after -XX: or in .hotspotrc: SuppressErrorAt=/javaClasses.inline.hpp:215
>> #
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> # Internal Error (/home/qingfeng.yy/openjdk16_so_warning/jdk/src/hotspot/share/classfile/javaClasses.inline.hpp:215), pid=75241, tid=75242
>> # assert(java_lang_Class::is_instance(java_class)) failed: must be a Class object
>> #
>> # JRE version: (17.0) (slowdebug build )
>> # Java VM: OpenJDK 64-Bit Server VM (slowdebug 17-internal+0-adhoc.qingfengyy.jdk, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
>> # Problematic frame:
>> # V [libjvm.so+0x697d19] java_lang_Class::as_Klass(oopDesc*)+0x29
>> #
>> # No core dump will be written. 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/qingfeng.yy/openjdk16_so_warning/jdk/build/linux-x86_64-server-slowdebug/images/jdk/bin/hs_err_pid75241.log
>> #
>> #
>> The gut of this problem is that the calculation of crc32 for the CDS archive is inconsistent between dumptime and runtime, this will cause subsequent steps to deviate from the desired path one after another, eventually leading to an internal error that crashes the VM. 
>> 
>> All tests under hotspot/jtreg/runtime/cds are passed(excepts those problem-listed) with slowdebug mode.
>
> You are right. The crc is calculated based on used size, not aligned used size.

Thanks @yminqi @calvinccheung for reviews!

-------------

PR: https://git.openjdk.java.net/jdk/pull/3244


More information about the hotspot-runtime-dev mailing list