perm gen size problem with 6817525

Christian Thalinger christian.thalinger at oracle.com
Thu Sep 30 11:09:01 PDT 2010


I tripped over a problem while working on:

6817525: turn on method handle functionality by default for JSR 292

It seems that the perm gen size gets too small:

$ gamma -Xshare:dump -XX:SharedReadOnlySize=10M -XX:PermSize=12M
VM option 'SharedReadOnlySize=10M'
VM option 'PermSize=12M'
Loading classes to share ... # To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc:  SuppressErrorAt=/handles.hpp:74
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/home/twisti/hotspot-comp/6817525/src/share/vm/runtime/handles.hpp:74), pid=1943, tid=1
#  assert(_handle != NULL) failed: resolving NULL handle
#
# JRE version: 7.0
# Java VM: OpenJDK Client VM (20.0-b01-internal-jvmg interpreted mode solaris-x86 )
# An error report file with more information is saved as:
# /home/twisti/hotspot-comp/6817525/make/hs_err_pid1943.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#
Current thread is 1
Dumping core ...
Abort

$ gamma -Xshare:dump -XX:SharedReadOnlySize=10M -XX:PermSize=16M
VM option 'SharedReadOnlySize=10M'
VM option 'PermSize=16M'
Loading classes to share ... done. 
Rewriting and unlinking classes ... done. 
Calculating hash values for String objects .. done. 
Calculating fingerprints ... done. 
Removing unshareable information ... done. 
Moving pre-ordered read-only objects to shared space at 0xd8e00000 ... done. 
Moving read-only objects to shared space at 0xd93e42c0 ... done. 
Moving common symbols to shared space at 0xd93f4120 ... done. 
Moving remaining symbols to shared space at 0xd94cfd60 ... done. 
Moving string char arrays to shared space at 0xd94d0b40 ... done. 
Moving additional symbols to shared space at 0xd958f3c0 ... done. 
Read-only space ends at 0xd966dc60, 8838240 bytes.
Moving pre-ordered read-write objects to shared space at 0xd9800000 ... done. 
Moving read-write objects to shared space at 0xd9f09db0 ... done. 
Moving String objects to shared space at 0xd9f572f0 ... done. 
Read-write space ends at 0xd9fa34d8, 8008920 bytes.
132 objects no longer referenced, not shared.
Updating references to shared objects ... done. 
<snip>

It seems the assert triggers when a perm gen collection is done.  So I
have two questions:

a) Is this normal behavior that no collection can happen when dumping
the shared spaces?

b) What is the correct fix for that problem?  I guess I cannot simply
increase the default perm gen size for client.

-- Christian



More information about the hotspot-runtime-dev mailing list