Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent program from crashing when showing allocation stack traces

Question

Why does VisualVM terminate my program when attempting to view object allocation stack trace, and how do I fix it?


I'm cleaning up an application which has a few memory problems, the biggest being creating a bunch of short-lived int[] which causes GC to fire like crazy:

enter image description here

When I right click int[] and choose Take Snapshot and Show Allocation Stack Traces, my application closes and a warning box pops up saying Failed to obtain results snapshot. The application terminated:

enter image description here

The closest thing I found on the subject was a bug report which recommended running my profiled application with -Xnoclassgc. It didn't work, the results were the same.


Specs

VisualVM: 1.8.0_60 (Build 1380-140910); platform 20140910-unknown-revn
Java: 1.8.0_60; Java HotSpot(TM) 64-Bit Server VM (25.60-b23, mixed mode)
Eclipse: Luna Release (4.4.0) Build id: 20140612-0600
System: Windows 7 (6.1) Service Pack 1, amd64 64bit

Crash log

http://pastebin.com/a4YPWutj

The size of the crash log exceeded the character limit, so I had to place it elsewhere. Sorry.

like image 811
Vince Avatar asked Dec 02 '15 21:12

Vince


1 Answers

Ok. So based on the crashlog obtained, it looks like you ran into a VisualVM bug already reported here:

JVM being profiled crashes

The submitter of the original bug narrowed this behavior down to Java8, so the best chance you have is running a VisualVM on an older (Java7) runtime. If this is an option for you, then you only need to download a Java7 JDK and run the VisualVM directly from there.

like image 84
Gergely Bacso Avatar answered Sep 20 '22 21:09

Gergely Bacso