JDK-6577184 : G1: SIGSEGV in ~BufferBlob::Interpreter after a full GC
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2007-07-05
  • Updated: 2013-09-18
  • Resolved: 2009-02-13
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 Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs14Fixed
Description
SIGSEGV in ~BufferBlob::Interpreter after a full GC:


148.629: [Full GC 85M->23M(128M), 1.2100642 secs]
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xfb005a54, pid=10543, tid=31
#
# Java VM: Java HotSpot(TM) Server VM (1.7.0-internal-fastdebug mixed mode)
# Problematic frame:
# v  ~BufferBlob::Interpreter
#

Comments
SUGGESTED FIX Job ID: 20070706054931.ap159146.g1_gc_baseline_sync Original workspace: spb-east:/scratch/users/ap159146/g1_gc_baseline_sync Submitter: ap159146 Archived data: /net/prt-data.east/archives/main/g1_gc_baseline/2007/20070706054931.ap1591 46.g1_gc_baseline_sync/ Webrev: http://analemma.sfbay.sun.com/net/prt-data.east/archives/main/g1_gc_baseli ne/2007/20070706054931.ap159146.g1_gc_baseline_sync/workspace/webrevs/webrev-2007.07.06/index.html Fixed 6577184: G1: SIGSEGV in ~BufferBlob::Interpreter after a full GC Webrev at: http://javaweb.sfbay/~ap159146/6577184/ Reviewed by: Y Srinivas Ramakrishna, Tony Printezis, Jon Masamitsu Fix Verified: yes Verification Testing: dacapo (ALL) Other testing: PRT, gc_test_suite Details: This bug is due to screwed up MinPermHeapExpansion in CollectorPolicy::initialize_flags(). It's initial value is less than min_alignment() so align_size_down(...) returns zero. Then when the a f ull collection happened, CompactingPermGen::compute_new_size() _shrinks_ the permanent generation and kills live data. END COMMENT update: src/share/vm/memory/collectorPolicy.cpp Examined files: 4007 Contents Summary: 1 update 4006 no action (unchanged)
05-10-2007

EVALUATION This bug is due to screwed up MinPermHeapExpansion in CollectorPolicy::initialize_flags(). It's initial value is less than min_alignment() so align_size_down(...) returns zero. Then when the a full collection happened, CompactingPermGen::compute_new_size() _shrinks_ the permanent generation and kills live data.
05-07-2007