Testcase for 6173515 (Test6173515.sh) tests that exceptions are thrown when filling the heap and, separately, filling the perm generation by continually loading classes.
The ConsumePermGen test crashes on ia64: (although the testcase wrapper hides the crash and appears to pass)
hpzx:~/kevin/6173515 # $TESTJAVA/bin/java -noclassgc -XX:MaxPermSize=32m ConsumePermGen
Exception in thread "main" java.lang.OutOfMemoryError
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# Internal Error (455843455054494F4E530E435050011B), pid=9911, tid=2305843009214615424
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (1.4.2_21-rev-b04 mixed mode)
# An error report file with more information is saved as hs_err_pid9911.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted
hpzx:~/kevin/6173515 #
The crashing stack is:
Core was generated by `/root/kevin/j2sdk1.4.2_21/bin/java -noclassgc -XX:MaxPermSize=32m ConsumePermGe'.
Program terminated with signal 6, Aborted.
#0 0xa000000000010721 in __kernel_syscall_via_break ()
(gdb) bt
#0 0xa000000000010721 in __kernel_syscall_via_break ()
#1 0x2000000000142940 in raise () from /lib/libc.so.6.1
#2 0x2000000000145210 in abort () from /lib/libc.so.6.1
#3 0x2000000000ea60b0 in os::abort(int) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#4 0x2000000001039690 in VMError::report_and_die(void) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#5 0x2000000000a01b30 in report_fatal(char const *, int, char const *) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#6 0x2000000000a7d560 in ExceptionMark::~ExceptionMark(void) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#7 0x2000000000fd0ed0 in JavaThread::exit(int) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#8 0x2000000000fda580 in Threads::destroy_vm(void) () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#9 0x2000000000c0dd90 in jni_DestroyJavaVM () from /root/kevin/j2sdk1.4.2_21/jre/lib/ia64/server/libjvm.so
#10 0x4000000000003370 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)
Use of -noclassgc is perhaps asking for a problem when we need to load a class in order to proceed, and the perm space is absolutely full.
We need to load some classes after the exception happens:
java.lang.StackTraceElement
java.lang.Shutdown
java.lang.Shutdown$Lock