JDK-6452074 : HeapDumpOnOutOfMemoryError option doesn't work with through-put collector in 1.4.2
  • Type: Bug
  • Status: Resolved
  • Resolution: Fixed
  • Component: core-svc
  • Sub-Component: tools
  • Priority: P4
  • Affected Version: 6
  • OS: generic
  • CPU: generic
  • Submit Date: 2006-07-24
  • Updated Date: 2014-02-27
  • Resolved Date: 2007-04-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availabitlity Release.

To download the current JDK release, click here.
Other
1.4.2_15 b01Resolved
Description
The +HeapDumpOnOutOfMemoryError option was back-ported to 1.4.2_12 via 6280629-

Unfortunately the changes to the object iteration implementation in the through-put collector weren't included in the putback so it means that this option doesn't work with +UseParallelGC. One customer reports this guarantee:

# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error (504152414C4C454C33434156454E4745284541500E43505001E1
01), pid=24538, tid=6
#
# Java VM: Java HotSpot(TM) Client VM (1.4.2_12-b02 mixed mode)

The error ID points to parallelScavengeHeap.cpp, line 481, which is the
following function:

void ParallelScavengeHeap::object_iterate(ObjectClosure* cl) {
 Unimplemented();
} 

This is easy to fix and should be fixed in the next available 1.4.2_xx update.

Comments
EVALUATION There isn't a parent CR for this as this issue is specific to 1.4.2.
2006-08-11

EVALUATION same as parent CR
2006-08-11

SUGGESTED FIX ------- parallelScavengeHeap.cpp ------- *** /tmp/sccs.oEaigv Tue Jul 25 19:15:20 2006 --- parallelScavengeHeap.cpp Tue Jul 25 18:54:29 2006 *************** *** 478,484 **** } void ParallelScavengeHeap::object_iterate(ObjectClosure* cl) { ! Unimplemented(); } void ParallelScavengeHeap::permanent_oop_iterate(OopClosure* cl) { --- 478,486 ---- } void ParallelScavengeHeap::object_iterate(ObjectClosure* cl) { ! young_gen()->object_iterate(cl); ! old_gen()->object_iterate(cl); ! perm_gen()->object_iterate(cl); }
2006-07-25