-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8374577: Heap dump from core does not contain HPROF_GC_ROOT_JAVA_FRAME #29058
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
👋 Welcome back ysuenaga! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
@YaSuenag |
|
/label remove hotspot-gc |
|
@YaSuenag |
Webrevs
|
|
@YaSuenag Can you please add/update jtreg test for this fix or explain in the bug/PR why it is not added. |
|
@lmesnik |
We can extract heap dump from coredump with
jhsdb jmap --binaryheap, but it does not containHPROF_GC_ROOT_JAVA_FRAME. It means we cannot detect leaked object on thread stack.I attached 2 images which I saw on Eclipse Memory Analyzer Tool (MAT). Heap dumps were created following options:
This image shows "thread overview" from the heapdump by
-XX:+HeapDumpOnOutOfMemoryError. It reportsOOME.mainhas large retained heap.On the other hand, this image extracted by
jhsdb jmap --binaryheapdoes not report it - leaked object is reported as unreachable objects.heapDump.cpp in HotSpot dumps
HPROF_GC_ROOT_JAVA_FRAMEfor each Java frames. SA should do that.Essensially, we need to apply the fix in 290c5ba , however it fails with exception due to access
oopin out of range. We need to fix the number of objects in expression stack like HotSpot. I fixed it in 0697df1 . And also I saw error relates toinvokedynamicbecause ConstantPool in SA has not followed curre t HotSpot implementation. So I fixed it in a9c9e6c .This change works fine with both interpreter and
-Xcomp.Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/29058/head:pull/29058$ git checkout pull/29058Update a local copy of the PR:
$ git checkout pull/29058$ git pull https://git.openjdk.org/jdk.git pull/29058/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 29058View PR using the GUI difftool:
$ git pr show -t 29058Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/29058.diff
Using Webrev
Link to Webrev Comment