Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Memory Analyzer » Issues with MAT reading AdoptJDK openj9 core.dmp files(open the core.dmp file using MAT 1.11 or 1.12 and during index creation MAT generates a .threads file. The .threads file's missing thread stack traces and locals, )
Issues with MAT reading AdoptJDK openj9 core.dmp files [message #1843278] Thu, 22 July 2021 13:12 Go to next message
Richard Olson is currently offline Richard OlsonFriend
Messages: 25
Registered: April 2010
Junior Member
Good morning,

I'm testing capturing various dump files in AdoptJDK openj9. I found a peculiar issue and no answers online.

Basically, generate a SYSTDUMP or core.dmp file via jcmd or Xdump. The JVM's running AdoptJDK openj9 11.0.10.9 flavors. I'm currently running Eclipse MAT versions 1.11 or 1.12 with the latest IBM DTFJ plugin.

Next, open the core.dmp file using MAT 1.11 or 1.12 and during index creation MAT generates a .threads file. The .threads file's missing thread stack traces and locals, Note, an openj9 javacore file created at the same time shows both Java and Native callstacks. I've attached a thread's stack found in a javacore file plus the .threads file. The current Java version's Eclipse OpenJ9 VM AdoptOpenJDK (build openj9-0.24.0, JRE 11 Windows 10 amd64-64-Bit Compressed References 20210120_899 (JIT enabled, AOT enabled).

I've reviewed core.dmp's running a Java class to simple deadlocks or core.dmp files created from a running Tomee instance. Also, tested the simple deadlock's class on AdoptJDK Hotspot version and MAT successfully shows thread stack traces. The AdoptJDK Hotspot generated .threads file contains both stack traces and locals addresses.

The attached zip file contains:
• A MAT created .threads file
• Openj9 javacore thread stack trace example
• A MAT Partial Threads Tab.jpg showing a few threads and no greater than (>) symbol to expand the threads
• A Eclipse MAT installed plugin versions.jpg showing installed MAT 1.12 plugin versions

The issue, how do you analyze an AdoptJDK openj9 core.dmp file's to find the Thread retaining excessive heap memory without looking at the stack trace and locals in MAT? The referenced objects help identify problematic code. Also, the data's necessary because no javacore files exist.

Any suggestions? Questions, please let me know.

Thanks,
Rich


Re: Issues with MAT reading AdoptJDK openj9 core.dmp files [message #1843284 is a reply to message #1843278] Thu, 22 July 2021 14:41 Go to previous messageGo to next message
Andrew Johnson is currently offline Andrew JohnsonFriend
Messages: 205
Registered: July 2009
Senior Member
I think this is a known problem - see bug 567819 and bug 558984

The Eclipse MAT DTFJ parser uses an IBM DTFJ OSGi plugin which works with dumps from IBM VMs. The OpenJ9 dumps have slightly different VM structures and the IBM DTFJ OSGi plugin can't properly read those. The matching OpenJ9 DTFJ classes can read those dumps, but those DTFJ classes are part of the VM and are not easily extractable to make an Eclipse OSGi plugin for use with MAT.
Re: Issues with MAT reading AdoptJDK openj9 core.dmp files [message #1843285 is a reply to message #1843284] Thu, 22 July 2021 14:47 Go to previous messageGo to next message
Richard Olson is currently offline Richard OlsonFriend
Messages: 25
Registered: April 2010
Junior Member
Good morning Andrew,

First, thanks for a quick response.

So, if I interpret your response correctly, no way to read the thread stack traces, etc. via MAT. Correct?

Thanks,
Rich
Re: Issues with MAT reading AdoptJDK openj9 core.dmp files [message #1843286 is a reply to message #1843285] Thu, 22 July 2021 15:39 Go to previous messageGo to next message
Andrew Johnson is currently offline Andrew JohnsonFriend
Messages: 205
Registered: July 2009
Senior Member
jdmpview -core yourcorefile.dmp
info thread


might help you see the stacks.
In MAT as the thread stacks are not correct then the thread locals would not be correctly marked as roots and various objects could be discarded from the snapshot. keep_unreachable_objects might help in that situation, but it is going to be harder to spot a leak.
Re: Issues with MAT reading AdoptJDK openj9 core.dmp files [message #1843317 is a reply to message #1843286] Fri, 23 July 2021 12:53 Go to previous message
Richard Olson is currently offline Richard OlsonFriend
Messages: 25
Registered: April 2010
Junior Member
Thanks, Andrew! I just read your note.

Yesterday, I used jdmpview>info thread * generating an output file. I can correlate data using in the javacore, info thread output and MAT's help reading the core.dmp file. Yes, imperfect , but at least we can begin to determine what the end users maybe running via the thread stack traces. Also, if a thread's retaining high heap values we can troubleshoot.

IMO, at least a good workaround

Thanks again!
Previous Topic:Inspect objects from comparison
Next Topic:Unable to open openj9 coredump file via Eclipse project
Goto Forum:
  


Current Time: Thu Apr 25 11:58:52 GMT 2024

Powered by FUDForum. Page generated in 0.03399 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top