Bug 582803 - Unable to click the reference pattern hyperlink from heap dump file generated via linux command
Summary: Unable to click the reference pattern hyperlink from heap dump file generated...
Status: CLOSED MOVED
Alias: None
Product: MAT
Classification: Tools
Component: Core (show other bugs)
Version: 1.15   Edit
Hardware: PC Linux
: P3 critical with 2 votes (vote)
Target Milestone: ---   Edit
Assignee: E4 Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-21 08:57 EST by Gowtham K CLA
Modified: 2024-05-08 17:04 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gowtham K CLA 2023-12-21 08:57:39 EST
Unable to click the reference pattern hyperlink from heap dump file generated via linux command. 

Kindly suggest any ideas or parameters to access the reference pattern hyperlink to analyze deeper.
Comment 1 Gowtham K CLA 2023-12-28 01:48:50 EST
we have only a Linux server to analyze the heap dump, able to see only the leak suspect but we need to analysis deeper to know the cause. Kindly suggest to analysis the heap dump deeper in Linux command line.
Comment 2 Andrew Johnson CLA 2024-01-03 11:31:40 EST
It's a fairly common pattern to have a Linux server analysing big dumps, then view the leak suspects report from another computer.

There is a limit to how much information can be sensibly be included in the HTML report. We have expanded this a little in MAT 1.15.0 in the thread information etc.

Once the dump has been parsed on the big server, it is possible to move the dump and all the index files and the reports to another computer and run MAT there. MAT should use a lot less heap in this situation, so you might be able to open the Run Expert System Test > Open Report menu item to view the report in MAT. The hyperlinks should then work.

Is there a particular item you want to see from the reference pattern hyperlink? I think the hyperlink looks something like:

mat://query/merge_shortest_paths+SELECT+*+FROM+java.lang.Class+s+WHERE+dominatorof%28s%29+%3D+null%3B+-groupby+FROM_GC_ROOTS_BY_CLASS+-excludes+java.lang.ref.Reference%3Areferent+java.lang.ref.Finalizer%3Aunfinalized+java.lang.Runtime%3A%3CUnfinalized%3E%3B

Having the full merge_shortest_paths tree in the HTML report is going to be too big.

Another idea is to run an X-Server on your local computer and set up DISPLAY etc. on your server computer (if you have permissions to install and run MAT in GUI mode on your big Linux server).
Comment 3 Gowtham K CLA 2024-01-04 07:56:29 EST
Your suggestions are beneficial to my ends; The heap dump has been parsed on the large server, but the client will not share the dump file (.hprof), only the index file. Is there a Linux command that will allow me to access the reference pattern hyperlink? 

If MAT is installed in a VDI environment but the client refuses to share the dump file (.hprof). Is there a way to open an index file other than a (.hprof) file in MAT to analyze a specific piece of code?
Comment 4 Andrew Johnson CLA 2024-01-05 08:46:44 EST
The mat: hyperlinks only make sense to Memory Analyzer when it has opened the 
HPROF file.

If the client is worried about sensitive data, then the Export HPROF query might help.

This can generate a new hprof file with various types of data removed:

https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Fexportdump.html

Please read through the above documentation and perhaps you and your client can agree a suitable level of redections.
Comment 5 Gowtham K CLA 2024-01-09 00:00:25 EST
After attempting the point in the documentation, heap dump parsing takes more than 11 hours for 7.1GB of heap dump. Kindly share an alternate solution in the Linux command.
Comment 6 Andrew Johnson CLA 2024-01-21 09:23:29 EST
It would be useful to see the error log from MAT. Window > Error Log > Save as

It would also be useful to see the start up options for MAT in 
MemoryAnalyzer.ini
in the same folder as the executable used to run MAT
Comment 7 Gowtham K CLA 2024-02-05 00:43:14 EST
FYI, I attached the error log while parsing a 42 GB dump file using Linux command.

org.eclipse.mat.SnapshotException: Illegal primitive object array type when parsing 42 GB heap dump using Linux command

Error message:

org.eclipse.mat.SnapshotException: Illegal primitive object array type
    at org.eclipse.mat.hprof.Pass1Parser.readPrimitiveArrayDump(Pass1Parser.java:707)
    at org.eclipse.mat.hprof.Pass1Parser.readDumpSegments(Pass1Parser.java:384)
    at org.eclipse.mat.hprof.Pass1Parser.read(Pass1Parser.java:186)
    at org.eclipse.mat.hprof.HprofIndexBuilder.fill(HprofIndexBuilder.java:80)
    at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:222)
    at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:126)
    at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:147)
    at org.eclipse.mat.internal.apps.ParseSnapshotApp.parse(ParseSnapshotApp.java:136)
    at org.eclipse.mat.internal.apps.ParseSnapshotApp.start(ParseSnapshotApp.java:108)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)


Kindly suggest any ideas to overcome this issue.
Comment 8 Gowtham K CLA 2024-02-13 23:55:47 EST
Any update on this?
Comment 9 Eclipse Webmaster CLA 2024-05-08 17:04:49 EDT
This issue has been migrated to https://github.com/eclipse-mat/org.eclipse.mat/issues/45.