-
Bug
-
Resolution: Not an Issue
-
P3
-
1.4.2_05
-
sparc
-
solaris_8
1.4.2-05 or -07 JVM dumps core immediately, when trying to run w/ jprofiler
(www.jprofiler.com) and -XX:+AggressiveHeap.
This was found when trying to profile "Sun Java System Application Server 7
2004Q2UR1", which is run w/ -XX:+AggressiveHeap by default.
The problem is strictly reproducible:
1. Testcase
-----------
% more HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!\n");
}
}
2. Compile and run
------------------
% /j2sdk1.4.2_07/bin/javac HelloWorld.java
%
% setenv LD_LIBRARY_PATH $PWD/jprofiler3/lib:/usr/lib
/net/redback/data/j2sdk1.4.2_07/bin/java -Xint -Xbootclasspath/a:/lab/Calls/AppSrv/javacrash/jprofiler3/bin/agent.jar -Xrunjprofiler:port=8849 -XX:+AggressiveHeap HelloWorld
JProfiler> Protocol version 18
JProfiler> Listening on port: 8849.
#
# HotSpot Virtual Machine Error, Internal Error
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_07-b02 interpreted mode)
#
# Error happened during: parallel gc system gc
#
# Error ID: 50532D41524B33574545502445434F5241544F520E4350500174 01
#
# Thread requesting VM operation: prio=5 tid=0x00036e98 nid=0x1 waiting on condition
#
Heap at VM Abort:
Heap
PSYoungGen total 344064K, used 256K [0xb5800000, 0xcd800000, 0xcd800000)
eden space 294912K, 0% used [0xb5800000,0xb5840000,0xc7800000)
from space 49152K, 0% used [0xca800000,0xca800000,0xcd800000)
to space 49152K, 0% used [0xc7800000,0xc7800000,0xca800000)
PSOldGen total 655360K, used 0K [0xcd800000, 0xf5800000, 0xf5800000)
object space 655360K, 0% used [0xcd800000,0xcd800000,0xf5800000)
PSPermGen total 16384K, used 856K [0xf5800000, 0xf6800000, 0xf9800000)
object space 16384K, 5% used [0xf5800000,0xf58d60a0,0xf6800000)
%
No "hs_err_pid<pid>.log" file is left behind.
3. Stacktrace
-------------
% dbx /j2sdk1.4.2_05/bin/java ./core.142_05
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.1' in your .dbxrc
Reading java
dbx: internal warning: writable memory segment 0xff1c0000[16384] of size 0 in core
core file header read successfully
Reading ld.so.1
Reading libthread.so.1
Reading libdl.so.1
Reading libc.so.1
Reading libc_psr.so.1
Reading libjvm.so
Reading libCrun.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libm.so.1
Reading libsched.so.1
Reading libmp.so.2
Reading librt.so.1
Reading libaio.so.1
Reading libmd5.so.1
Reading libmd5_psr.so.1
Reading libhpi.so
Reading libverify.so
Reading libjava.so
Reading libzip.so
Reading libjprofiler.so
Reading libstdc++.so.5
Reading libz.so
Reading libexpat.so.0
Reading libpthread.so.1
Reading libgcc_s.so.1
detected a multithreaded program
t@4 (l@4) terminated by signal ABRT (Abort)
0xff31ca78: __lwp_kill+0x0008: bgeu,a __lwp_kill+0x1c
(dbx) where
current thread: t@4
=>[1] __lwp_kill(0x0, 0x6, 0x0, 0xff33a000, 0x81010100, 0xff00), at 0xff31ca78
[2] raise(0x6, 0x0, 0xfbf7e880, 0x0, 0x1, 0xfbf7e0fc), at 0xff2cbacc
[3] abort(0x0, 0xfbf7e910, 0x0, 0xfffffff8, 0x0, 0xfbf7e939), at 0xff2b5690
[4] os::abort(0x1, 0xfefbe3ee, 0xfbf7f198, 0xfefedb9e, 0xfefedb25, 0xff00), at 0xfef3cb84
[5] report_error(0xfefbe1b8, 0x1, 0x1000, 0xfeffff44, 0x13fc, 0xfbf7f2f8), at 0xfee37dfc
[6] report_fatal(0xfefdcf94, 0x174, 0xfefdd003, 0xff004b64, 0xff004b6c, 0xc7800000), at 0xfee3739c
[7] PSMarkSweepDecorator::compact(0x8c278, 0x0, 0x0, 0x1, 0x34828, 0x8c278), at 0xfef5209c
[8] PSMarkSweep::invoke_no_policy(0xff001564, 0xff001378, 0xff006204, 0xff00620c, 0xffbfdb64, 0xff01cf14), at 0xfef50728
[9] PSMarkSweep::invoke(0xffbfdb64, 0x0, 0x0, 0x0, 0xfeff0000, 0x0), at 0xfef5023c
[10] VM_Operation::evaluate(0xffbfdb48, 0x283c18, 0xfeff0000, 0x35a88, 0x39c474, 0xfed69440), at 0xfed6c5e8
[11] VMThread::evaluate_operation(0x286f38, 0xffbfdb48, 0x4d68, 0x4c00, 0x4e84, 0x0), at 0xfed6c468
[12] VMThread::loop(0x4400, 0x4000, 0x4284, 0x4000, 0x422c, 0x3c00), at 0xfecc7420
[13] VMThread::run(0x286f38, 0xffffffc4, 0xff00f7d8, 0xffff8000, 0x40, 0x0), at 0xfecc6de8
[14] _start(0x286f38, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfecc6cd4
(dbx)
4. Run w/o -XX:+AggressiveHeap
------------------------------
% /j2sdk1.4.2_07/bin/java -Xint -Xbootclasspath/a:/lab/Calls/AppSrv/javacrash/jprofiler3/bin/agent.jar -Xrunjprofiler:port=8849 HelloWorld
JProfiler> Protocol version 18
JProfiler> Listening on port: 8849.
JProfiler> Native library initialized
JProfiler> Hotspot VM detected
JProfiler> Waiting for a connection ...
// app is waiting for the client to connect; connecting client ...
JProfiler> Using dynamic instrumentation
JProfiler> Time measurement: elapsed time
JProfiler> CPU profiling enabled
JProfiler> Starting HelloWorld ...
Hello World!
%
Some permanently running application would be needed here for profiling, but just
to show, that it's working fine.
###@###.### 2004-12-06 14:16:34 GMT
(www.jprofiler.com) and -XX:+AggressiveHeap.
This was found when trying to profile "Sun Java System Application Server 7
2004Q2UR1", which is run w/ -XX:+AggressiveHeap by default.
The problem is strictly reproducible:
1. Testcase
-----------
% more HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!\n");
}
}
2. Compile and run
------------------
% /j2sdk1.4.2_07/bin/javac HelloWorld.java
%
% setenv LD_LIBRARY_PATH $PWD/jprofiler3/lib:/usr/lib
/net/redback/data/j2sdk1.4.2_07/bin/java -Xint -Xbootclasspath/a:/lab/Calls/AppSrv/javacrash/jprofiler3/bin/agent.jar -Xrunjprofiler:port=8849 -XX:+AggressiveHeap HelloWorld
JProfiler> Protocol version 18
JProfiler> Listening on port: 8849.
#
# HotSpot Virtual Machine Error, Internal Error
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi
#
# Java VM: Java HotSpot(TM) Server VM (1.4.2_07-b02 interpreted mode)
#
# Error happened during: parallel gc system gc
#
# Error ID: 50532D41524B33574545502445434F5241544F520E4350500174 01
#
# Thread requesting VM operation: prio=5 tid=0x00036e98 nid=0x1 waiting on condition
#
Heap at VM Abort:
Heap
PSYoungGen total 344064K, used 256K [0xb5800000, 0xcd800000, 0xcd800000)
eden space 294912K, 0% used [0xb5800000,0xb5840000,0xc7800000)
from space 49152K, 0% used [0xca800000,0xca800000,0xcd800000)
to space 49152K, 0% used [0xc7800000,0xc7800000,0xca800000)
PSOldGen total 655360K, used 0K [0xcd800000, 0xf5800000, 0xf5800000)
object space 655360K, 0% used [0xcd800000,0xcd800000,0xf5800000)
PSPermGen total 16384K, used 856K [0xf5800000, 0xf6800000, 0xf9800000)
object space 16384K, 5% used [0xf5800000,0xf58d60a0,0xf6800000)
%
No "hs_err_pid<pid>.log" file is left behind.
3. Stacktrace
-------------
% dbx /j2sdk1.4.2_05/bin/java ./core.142_05
For information about new features see `help changes'
To remove this message, put `dbxenv suppress_startup_message 7.1' in your .dbxrc
Reading java
dbx: internal warning: writable memory segment 0xff1c0000[16384] of size 0 in core
core file header read successfully
Reading ld.so.1
Reading libthread.so.1
Reading libdl.so.1
Reading libc.so.1
Reading libc_psr.so.1
Reading libjvm.so
Reading libCrun.so.1
Reading libsocket.so.1
Reading libnsl.so.1
Reading libm.so.1
Reading libsched.so.1
Reading libmp.so.2
Reading librt.so.1
Reading libaio.so.1
Reading libmd5.so.1
Reading libmd5_psr.so.1
Reading libhpi.so
Reading libverify.so
Reading libjava.so
Reading libzip.so
Reading libjprofiler.so
Reading libstdc++.so.5
Reading libz.so
Reading libexpat.so.0
Reading libpthread.so.1
Reading libgcc_s.so.1
detected a multithreaded program
t@4 (l@4) terminated by signal ABRT (Abort)
0xff31ca78: __lwp_kill+0x0008: bgeu,a __lwp_kill+0x1c
(dbx) where
current thread: t@4
=>[1] __lwp_kill(0x0, 0x6, 0x0, 0xff33a000, 0x81010100, 0xff00), at 0xff31ca78
[2] raise(0x6, 0x0, 0xfbf7e880, 0x0, 0x1, 0xfbf7e0fc), at 0xff2cbacc
[3] abort(0x0, 0xfbf7e910, 0x0, 0xfffffff8, 0x0, 0xfbf7e939), at 0xff2b5690
[4] os::abort(0x1, 0xfefbe3ee, 0xfbf7f198, 0xfefedb9e, 0xfefedb25, 0xff00), at 0xfef3cb84
[5] report_error(0xfefbe1b8, 0x1, 0x1000, 0xfeffff44, 0x13fc, 0xfbf7f2f8), at 0xfee37dfc
[6] report_fatal(0xfefdcf94, 0x174, 0xfefdd003, 0xff004b64, 0xff004b6c, 0xc7800000), at 0xfee3739c
[7] PSMarkSweepDecorator::compact(0x8c278, 0x0, 0x0, 0x1, 0x34828, 0x8c278), at 0xfef5209c
[8] PSMarkSweep::invoke_no_policy(0xff001564, 0xff001378, 0xff006204, 0xff00620c, 0xffbfdb64, 0xff01cf14), at 0xfef50728
[9] PSMarkSweep::invoke(0xffbfdb64, 0x0, 0x0, 0x0, 0xfeff0000, 0x0), at 0xfef5023c
[10] VM_Operation::evaluate(0xffbfdb48, 0x283c18, 0xfeff0000, 0x35a88, 0x39c474, 0xfed69440), at 0xfed6c5e8
[11] VMThread::evaluate_operation(0x286f38, 0xffbfdb48, 0x4d68, 0x4c00, 0x4e84, 0x0), at 0xfed6c468
[12] VMThread::loop(0x4400, 0x4000, 0x4284, 0x4000, 0x422c, 0x3c00), at 0xfecc7420
[13] VMThread::run(0x286f38, 0xffffffc4, 0xff00f7d8, 0xffff8000, 0x40, 0x0), at 0xfecc6de8
[14] _start(0x286f38, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xfecc6cd4
(dbx)
4. Run w/o -XX:+AggressiveHeap
------------------------------
% /j2sdk1.4.2_07/bin/java -Xint -Xbootclasspath/a:/lab/Calls/AppSrv/javacrash/jprofiler3/bin/agent.jar -Xrunjprofiler:port=8849 HelloWorld
JProfiler> Protocol version 18
JProfiler> Listening on port: 8849.
JProfiler> Native library initialized
JProfiler> Hotspot VM detected
JProfiler> Waiting for a connection ...
// app is waiting for the client to connect; connecting client ...
JProfiler> Using dynamic instrumentation
JProfiler> Time measurement: elapsed time
JProfiler> CPU profiling enabled
JProfiler> Starting HelloWorld ...
Hello World!
%
Some permanently running application would be needed here for profiling, but just
to show, that it's working fine.
###@###.### 2004-12-06 14:16:34 GMT