I occasionally get a core dump in StringBuffer.ensureCapacity. This must have
something to do with memory management. This happens when runing my
GifRobot program. Here is the backtrace.
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_ACCERR [addr: 0xa6ae5e4]
stackbase=EFFFF844, stackpointer=EFFFEB68
Full thread dump:
"Async Garbage Collector" (0x2c0580): priority=1
"Finalizer thread" (0x2c0528): priority=1
"Idle thread" (0x2c0518): priority=0
"clock handler" (0x2c0508): priority=11
"main" (0x2c0500): priority=5 *current thread*
java.lang.StringBuffer.ensureCapacity(StringBuffer.java)
java.lang.StringBuffer.appendChar(StringBuffer.java)
java.io.DataInputStream.readLine(DataInputStream.java)
GifRobot.add(GifRobot.java:92)
GifRobot.add(GifRobot.java:118)
GifRobot.add(GifRobot.java:116)
GifRobot.add(GifRobot.java:116)
GifRobot.main(GifRobot.java:166)
Monitor Cache Dump:
java.lang.StringBuffer@2C2088/696B8 (key=0x2c2088): monitor owner: "main" (0x376e58)
unknown key (key=0x395cd0): unowned
Waiting to be notified:
"Async Garbage Collector" (0x2c0580): priority=1
Registered Monitor Dump:
Finalization queue lock: unowned
Waiting to be notified:
"Finalizer thread" (0x2c0528): priority=1
Thread queue lock: unowned
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: monitor owner: "main" (0x376e58)
Monitor registry: monitor owner: "main" (0x376e58)
Monitor cache lock: unowned
Event monitor: unowned
I/O monitor: unowned
Alarm monitor: unowned
Waiting to be notified:
"clock handler" (0x2c0508): priority=11
Thread Alarm Q:
sys_thread_t 0x395cd0 [Timeout in 833 ms]
Abort
26.24u 2.27s 5:38.14 8.4%
Exit 134
Here is the core dump stack trace:
Reading symbolic information for /home/avh/java/build/solaris/bin/java
core file header read successfully
Reading symbolic information for rtld /usr/lib/ld.so.1
Reading symbolic information for /usr/lib/libm.so.1
Reading symbolic information for /usr/lib/libdl.so.1
Reading symbolic information for /usr/lib/libsocket.so.1
Reading symbolic information for /usr/lib/libc.so.1
Reading symbolic information for /usr/lib/libnsl.so.1
Reading symbolic information for /usr/lib/libintl.so.1
Reading symbolic information for /usr/lib/libw.so.1
Reading symbolic information for /home/avh/java/build/solaris/lib/libnet.so
Reading symbolic information for /usr/lib/nss_nis.so.1
Reading symbolic information for /usr/lib/straddr.so
program terminated by signal ABRT (Abort)
(dbx) where
=>[1] kill(0x0, 0x6, 0x1, 0xef73dcb0, 0xef740778, 0xfc6998a0), at 0xef721830
[2] abort(0xb, 0xefffeb70, 0xefffe9b0, 0x0, 0x1, 0x0), at 0xef6ed7ec
---- called from signal handler with signal 11 (SIGSEGV) ------
[3] markChildren(), at 0x26d30
[4] gc0_locked(0x586f8, 0x96ba73a2, 0x27c00, 0x359e48, 0x2c2280, 0x5881c), at 0x28004
[5] realObjAlloc(0x5793c, 0x57934, 0x0, 0x30, 0x5792c, 0x258e08), at 0x26804
[6] ObjAlloc(0x38d660, 0x0, 0x1, 0x0, 0x57800, 0xc), at 0x2666c
[7] SignalError(0xeffff938, 0x53984, 0x0, 0x120, 0x5792c, 0x58888), at 0x225b4
[8] ExecuteJava(0xeffff76c, 0x3720b0, 0xb1, 0x39c8a9, 0x3720cc, 0xeffff938), at 0x214f0
[9] do_execute_java_method_vararg(0x397467, 0x38dce0, 0x0, 0x0, 0x3975bc, 0x1), at 0x1d248
[10] do_execute_java_method(0xeffff938, 0x38dce0, 0x0, 0x0, 0x3975bc, 0x1), at 0x1d0e0
[11] start_java(0x1, 0x586f8, 0xeffff9c8, 0x57c00, 0x0, 0x0), at 0x33ea0
(dbx)
Here is another data point. It core dumped again:
(dbx) where
=>[1] kill(0x0, 0x6, 0x1, 0xef6fdcb0, 0xef700778, 0xb), at 0xef6e1830
[2] abort(0x2, 0x1, 0x1, 0xfc07fb3c, 0xf0058748, 0xfc731120), at 0xef6ad7ec
[3] signalHandlerPanic(0xa, 0xefffe690, 0xefffe4d0, 0x0, 0x0, 0x0), at 0x2e73c
---- called from signal handler with signal 10 (SIGBUS) ------
[4] DumpThreadsHelper(), at 0x29370
[5] sysThreadEnumerateOver(0x29358, 0x0, 0xdfdfdfdf, 0xdfdfdfdf, 0xefffe8ec, 0xfc731120), at 0x30524
[6] signalHandlerPanic(0xb, 0xefffeb80, 0xefffe9c0, 0x0, 0x1, 0x0), at 0x2e700
---- called from signal handler with signal 11 (SIGSEGV) ------
[7] memmove(), at 0xef696bb0
[8] compactHeap(0x8111c, 0x814b4, 0x0, 0x593cc, 0x3, 0x80c9c), at 0x2872c
[9] gc0_locked(0x58770, 0x9836fe81, 0x27c00, 0x3593c0, 0x3593c8, 0x10), at 0x28128
[10] realObjAlloc(0x579b4, 0x579ac, 0x0, 0x1200, 0x579a4, 0x23e420), at 0x2683c
[11] ExecuteJava(0xeffff75c, 0x371800, 0xb1, 0x39d791, 0x37181c, 0xeffff928), at 0x21508
[12] do_execute_java_method_vararg(0x397057, 0x38d670, 0x0, 0x0, 0x39724c, 0x1), at 0x1d280
[13] do_execute_java_method(0xeffff928, 0x38d670, 0x0, 0x0, 0x39724c, 0x1), at 0x1d118
[14] start_java(0x1, 0x58770, 0xeffff9bc, 0x57c00, 0x0, 0x0), at 0x33f10
something to do with memory management. This happens when runing my
GifRobot program. Here is the backtrace.
SIGSEGV 11* segmentation violation
si_signo [11]: SIGSEGV 11* segmentation violation
si_errno [0]: Error 0
si_code [1]: SEGV_ACCERR [addr: 0xa6ae5e4]
stackbase=EFFFF844, stackpointer=EFFFEB68
Full thread dump:
"Async Garbage Collector" (0x2c0580): priority=1
"Finalizer thread" (0x2c0528): priority=1
"Idle thread" (0x2c0518): priority=0
"clock handler" (0x2c0508): priority=11
"main" (0x2c0500): priority=5 *current thread*
java.lang.StringBuffer.ensureCapacity(StringBuffer.java)
java.lang.StringBuffer.appendChar(StringBuffer.java)
java.io.DataInputStream.readLine(DataInputStream.java)
GifRobot.add(GifRobot.java:92)
GifRobot.add(GifRobot.java:118)
GifRobot.add(GifRobot.java:116)
GifRobot.add(GifRobot.java:116)
GifRobot.main(GifRobot.java:166)
Monitor Cache Dump:
java.lang.StringBuffer@2C2088/696B8 (key=0x2c2088): monitor owner: "main" (0x376e58)
unknown key (key=0x395cd0): unowned
Waiting to be notified:
"Async Garbage Collector" (0x2c0580): priority=1
Registered Monitor Dump:
Finalization queue lock: unowned
Waiting to be notified:
"Finalizer thread" (0x2c0528): priority=1
Thread queue lock: unowned
Class lock: unowned
Java stack lock: unowned
Code rewrite lock: unowned
Heap lock: monitor owner: "main" (0x376e58)
Monitor registry: monitor owner: "main" (0x376e58)
Monitor cache lock: unowned
Event monitor: unowned
I/O monitor: unowned
Alarm monitor: unowned
Waiting to be notified:
"clock handler" (0x2c0508): priority=11
Thread Alarm Q:
sys_thread_t 0x395cd0 [Timeout in 833 ms]
Abort
26.24u 2.27s 5:38.14 8.4%
Exit 134
Here is the core dump stack trace:
Reading symbolic information for /home/avh/java/build/solaris/bin/java
core file header read successfully
Reading symbolic information for rtld /usr/lib/ld.so.1
Reading symbolic information for /usr/lib/libm.so.1
Reading symbolic information for /usr/lib/libdl.so.1
Reading symbolic information for /usr/lib/libsocket.so.1
Reading symbolic information for /usr/lib/libc.so.1
Reading symbolic information for /usr/lib/libnsl.so.1
Reading symbolic information for /usr/lib/libintl.so.1
Reading symbolic information for /usr/lib/libw.so.1
Reading symbolic information for /home/avh/java/build/solaris/lib/libnet.so
Reading symbolic information for /usr/lib/nss_nis.so.1
Reading symbolic information for /usr/lib/straddr.so
program terminated by signal ABRT (Abort)
(dbx) where
=>[1] kill(0x0, 0x6, 0x1, 0xef73dcb0, 0xef740778, 0xfc6998a0), at 0xef721830
[2] abort(0xb, 0xefffeb70, 0xefffe9b0, 0x0, 0x1, 0x0), at 0xef6ed7ec
---- called from signal handler with signal 11 (SIGSEGV) ------
[3] markChildren(), at 0x26d30
[4] gc0_locked(0x586f8, 0x96ba73a2, 0x27c00, 0x359e48, 0x2c2280, 0x5881c), at 0x28004
[5] realObjAlloc(0x5793c, 0x57934, 0x0, 0x30, 0x5792c, 0x258e08), at 0x26804
[6] ObjAlloc(0x38d660, 0x0, 0x1, 0x0, 0x57800, 0xc), at 0x2666c
[7] SignalError(0xeffff938, 0x53984, 0x0, 0x120, 0x5792c, 0x58888), at 0x225b4
[8] ExecuteJava(0xeffff76c, 0x3720b0, 0xb1, 0x39c8a9, 0x3720cc, 0xeffff938), at 0x214f0
[9] do_execute_java_method_vararg(0x397467, 0x38dce0, 0x0, 0x0, 0x3975bc, 0x1), at 0x1d248
[10] do_execute_java_method(0xeffff938, 0x38dce0, 0x0, 0x0, 0x3975bc, 0x1), at 0x1d0e0
[11] start_java(0x1, 0x586f8, 0xeffff9c8, 0x57c00, 0x0, 0x0), at 0x33ea0
(dbx)
Here is another data point. It core dumped again:
(dbx) where
=>[1] kill(0x0, 0x6, 0x1, 0xef6fdcb0, 0xef700778, 0xb), at 0xef6e1830
[2] abort(0x2, 0x1, 0x1, 0xfc07fb3c, 0xf0058748, 0xfc731120), at 0xef6ad7ec
[3] signalHandlerPanic(0xa, 0xefffe690, 0xefffe4d0, 0x0, 0x0, 0x0), at 0x2e73c
---- called from signal handler with signal 10 (SIGBUS) ------
[4] DumpThreadsHelper(), at 0x29370
[5] sysThreadEnumerateOver(0x29358, 0x0, 0xdfdfdfdf, 0xdfdfdfdf, 0xefffe8ec, 0xfc731120), at 0x30524
[6] signalHandlerPanic(0xb, 0xefffeb80, 0xefffe9c0, 0x0, 0x1, 0x0), at 0x2e700
---- called from signal handler with signal 11 (SIGSEGV) ------
[7] memmove(), at 0xef696bb0
[8] compactHeap(0x8111c, 0x814b4, 0x0, 0x593cc, 0x3, 0x80c9c), at 0x2872c
[9] gc0_locked(0x58770, 0x9836fe81, 0x27c00, 0x3593c0, 0x3593c8, 0x10), at 0x28128
[10] realObjAlloc(0x579b4, 0x579ac, 0x0, 0x1200, 0x579a4, 0x23e420), at 0x2683c
[11] ExecuteJava(0xeffff75c, 0x371800, 0xb1, 0x39d791, 0x37181c, 0xeffff928), at 0x21508
[12] do_execute_java_method_vararg(0x397057, 0x38d670, 0x0, 0x0, 0x39724c, 0x1), at 0x1d280
[13] do_execute_java_method(0xeffff928, 0x38d670, 0x0, 0x0, 0x39724c, 0x1), at 0x1d118
[14] start_java(0x1, 0x58770, 0xeffff9bc, 0x57c00, 0x0, 0x0), at 0x33f10