JDK-8267697 : [lworld] [lw3] VM crashes during heap dump if Java heap contains flat arrays
  • Type: Bug
  • Component: hotspot
  • Sub-Component: svc
  • Affected Version: repo-valhalla
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2021-05-25
  • Updated: 2022-01-26
  • Resolved: 2021-09-13
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
repo-valhallaFixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Description
The VM crashes during heap dump because of lack of support for flat arrays.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home.local/fred/WORK/Valhalla/GitRepos/valhalla/open/src/hotspot/share/services/heapDumper
.cpp:735), pid=1833891, tid=1833898
#  Error: ShouldNotReachHere()
#
# JRE version: Java(TM) SE Runtime Environment (17.0) (fastdebug build 17-lworld3ea+0-2021-05-07-1433318.fred.
..)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-lworld3ea+0-2021-05-07-1433318.fred..., mixed mode,
 sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0xe060ee]  DumperSupport::sig2size(Symbol*)+0x7e
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimite
d" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
#

---------------  S U M M A R Y ------------

Command Line: PressEnter

Host: dalk, Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz, 16 cores, 31G, Ubuntu 20.04.2 LTS
Time: Tue May 25 10:22:10 2021 EDT elapsed time: 26.314957 seconds (0d 0h 0m 26s)

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

Current thread (0x00007f9280248010):  VMThread "VM Thread" [stack: 0x00007f9246700000,0x00007f9246800000] [id=
1833898]

Stack: [0x00007f9246700000,0x00007f9246800000],  sp=0x00007f92467fe5f0,  free space=1017k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0xe060ee]  DumperSupport::sig2size(Symbol*)+0x7e
V  [libjvm.so+0xe0631a]  DumperSupport::instance_size(Klass*) [clone .constprop.0]+0x1da
V  [libjvm.so+0xe0d335]  DumperSupport::dump_class_and_array_classes(DumpWriter*, Klass*)+0x205
V  [libjvm.so+0x9f1e0d]  ClassLoaderData::classes_do(KlassClosure*)+0x3d
V  [libjvm.so+0x9fd35d]  ClassLoaderDataGraph::classes_do(KlassClosure*)+0x1bd
V  [libjvm.so+0xe0ac5f]  VM_HeapDumper::work(unsigned int) [clone .part.0]+0xdf
V  [libjvm.so+0x1afbcaf]  WorkGang::run_task(AbstractGangTask*, unsigned int, bool)+0x13f
V  [libjvm.so+0xe04b9c]  VM_HeapDumper::doit()+0x16c
V  [libjvm.so+0x1a8cfaa]  VM_Operation::evaluate()+0x18a
V  [libjvm.so+0x1ab02a3]  VMThread::evaluate_operation(VM_Operation*)+0x183
V  [libjvm.so+0x1ab0f18]  VMThread::inner_execute(VM_Operation*)+0x1f8
V  [libjvm.so+0x1ab1155]  VMThread::loop()+0xb5
V  [libjvm.so+0x1ab1287]  VMThread::run()+0xc7
V  [libjvm.so+0x1997520]  Thread::call_run()+0x100
V  [libjvm.so+0x164349e]  thread_native_entry(Thread*)+0x10e

Comments
Actually values of the flattened arrays are not included in the dump. And 'jcmd <pid> GC.heap_dump <filepath>' crashes if java heap contains objects with flattened field.
19-08-2021

After updating the repo VM dumps the heap successfully. Heap dumps look similar for flattened arrays and for arrays of InstanceObjects
19-08-2021