Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6306922
Votes 2
Synopsis Dump dump created by +HeapDumpOnOutOfMemoryError should include stack traces for stack roots
Category hotspot:tools
Reported Against
Release Fixed hs14(b06), 6u14(b01) (Bug ID:2172783)
State 10-Fix Delivered, request for enhancement
Priority: 4-Low
Related Bugs 6759840 , 6760477 , 6765718
Submit Date 05-AUG-2005
Description
The dump file produced by +HeapDumpOnOutOfMemoryError when OutOfMemoryError is thrown includes stack roots (both locals and JNI locals). These locals are emitted to the dump with an empty stack trace. It would be desirable to emit the stack trace all threads so that the stack roots could be better understood.
Posted Date : 2005-08-05 11:05:51.0

This work is also related to the new heap snapshot format that we hope to include in JDK 7, see
https://heap-snapshot.dev.java.net/
for more information.
Posted Date : 2006-08-23 17:18:25.0
Work Around
N/A
Evaluation
The heap dump format is being redesigned for dolphin so that is a good time to revisit this issue.

--

A JDC comment on this bug asked for +StackDumpOnOutOfMemoryError. Since mustang b34 there is a stack trace generated when OOME is thrown because the java heap or perm gen is full (see 4753347). Also, on Solaris and Linux it is possible to generate a complete thread dump at OOME time using this:
  -XX:OnOutOfMemoryError="jstack -F %p"
This option runs the jstack utility when OOME is first thrown. The -F option means "force" and %p is replaced by the pid of the VM process.
Posted Date : 2006-05-24 08:18:08.0

Snapshot the thread dump at heap dump time and include the stack traces as HPROF_TRACE and HPROF_FRAME records.  The following records will link with the proper stack trace:

HPROF_GC_ROOT_THREAD_OBJ
HPROF_GC_ROOT_JAVA_FRAME
HPROF_GC_ROOT_JNI_LOCAL
Posted Date : 2008-10-15 00:35:54.0

http://hg.openjdk.java.net/jdk7/hotspot-svc/hotspot/rev/4d05b7cb7842
Posted Date : 2008-10-15 03:46:02.0

http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/4d05b7cb7842
Posted Date : 2008-10-16 21:29:58.0
Comments
  
  Include a link with my name & email   

Submitted On 25-APR-2006
gojomo
Or even, a +StackDumpOnOutOfMemoryError option would be nice... so that if the true culprit for unexpected memory exhaustion is something still in progress in another thread, it can be recognized. 


Submitted On 07-AUG-2006
vladimirkondratyev
YourKit Java Profiler already can import and visualize HPROF binary dumps. Stack traces is very useful information, because it allows to "bind" local variables (GC roots) and stack frames which hold references to these variables. 

Is there any chance to fix this RFE in 6.0 or one of update releases?



PLEASE NOTE: JDK6 is formerly known as Project Mustang