When Vm crashes before/during VM initialization (e.g. in the course of asserting non-VM gtests), the hs-err file shows this call stack:
28 Stack: [0x00007ffe42d7f000,0x00007ffe4357d000], sp=0x00007ffe435734a0, free space=8145k
29 Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
30 V [libjvm.so+0x15519c5] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, c har const*, int, unsigned long)+0x811
31 V [libjvm.so+0x1551151] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x57
32 V [libjvm.so+0xa9ed7d] report_vm_error(char const*, int, char const*, char const*, ...)+0x205
33 V [libjvm.so+0x121b783] OSContainer::is_containerized()+0x43
34 V [libjvm.so+0x121d539] os::physical_memory()+0x15
35 V [libjvm.so+0x12173b5] os::print_summary_info(outputStream*, char*, unsigned long)+0x93
36 V [libjvm.so+0x154eebb] VMError::report(outputStream*, bool)+0xdc3
37 V [libjvm.so+0x15519c5] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, c har const*, int, unsigned long)+0x811
38 V [libjvm.so+0x1551151] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x57
39 V [libjvm.so+0xa9ed7d] report_vm_error(char const*, int, char const*, char const*, ...)+0x205
40 V [libjvm.so+0x923060]
... (real crash here) ...
So, "OSContainer::is_containerized()", called as part of "os::print_summary_info()", crashes in these cases. I did not dive down but probably some initialization is missing.
This could be handled more gracefully.