libjava testsuite failures (regressions 3.2 -> 3.3)

Mark Wielaard mark@klomp.org
Sat Jan 18 11:32:00 GMT 2003


Hi,

On Sat, 2003-01-18 at 04:57, Jeff Sturm wrote:
> Indeed.  What's interesting about this example is that the gij test takes
> over 60 seconds on my x86-linux laptop if compiled with gcj -C, but
> finishes in only 4 seconds if compiled with javac!
> 
> Without looking at the bytecode, I'd guess javac is hoisting the
> SyncTest.class lookup out of the while loop, whereas gcj -C performs no
> optimizations.
> 
> Doing this by hand might be appropriate for the test case, to prevent
> annoying timeouts:

Good observation. The same speedup can be seen by compiling with jikes.
The timeouts disappear with your patch (but see below).

Attached is the jcf-dump output for the run() method as compiled with
gcj -C and jikes. The trick that jikes uses is to create a new static
field to store the result of the call to SyncTest.class$() which
eventually calls Class.forName(). This field is initialized to null and
then initialized only once.

We could do the same kind of thing, but this does not seem to be the
root cause of this problem. The SyncTest as compiled by gcj -C seems to
have a real deadlock some of the times (this does never happen with gij
3.2 it seems, which is also much faster on this test then gij 3.3).

Also attached is the stackdump of all threads when SyncTest is
deadlocked. All threads are in the garbage collector and I believe this
is the same issue that I sometimes had when running Eclipse with gij.
One of the threads calls dl_iterate_phdr and Hans Boehm explained to me
that method acquires a lock which is a problem when that thread is
stopped by the garbage collector as seems to be the case here. I believe
that he had a fix for this.

Cheers,

Mark
-------------- next part --------------
SyncTest.run() as compiled by gcj -C:

Method name:"run" public Signature: 34=()void
Attribute "Code", length:94, max_stack:2, max_locals:5, code_length:50
  0: iconst_0
  1: istore_1
  2: iload_1
  3: ldc #35=<Integer 1000000>
  5: if_icmpge 49
  8: ldc #36=<String "SyncTest">
 10: invokestatic #38=<Method SyncTest.class$ (java.lang.String)java.lang.Class> 13: astore_2
 14: aload_2
 15: monitorenter
 16: getstatic #40=<Field SyncTest.counter int>
 19: iconst_1
 20: iadd
 21: putstatic #40=<Field SyncTest.counter int>
 24: jsr 38
 27: goto 43
 30: astore 4
 32: jsr 38
 35: aload 4
 37: athrow
 38: astore_3
 39: aload_2
 40: monitorexit
 41: ret 3
 43: iinc 1 1
 46: goto 2
 49: return
Exceptions (count: 1):
  start: 16, end: 24, handler: 30, type: 0 /* finally */
Attribute "LineNumberTable", length:18, count: 4
  line: 6 at pc: 0
  line: 6 at pc: 2
  line: 8 at pc: 16
  line: 6 at pc: 43

SyncTest.run() as compiled by jikes:

Method name:"run" public Signature: 13=()void
Attribute "Code", length:116, max_stack:2, max_locals:4, code_length:52
  0: iconst_0
  1: istore_1
  2: goto 45
  5: goto 11
  8: aload_2
  9: monitorexit
 10: athrow
 11: getstatic #17=<Field SyncTest.class$SyncTest java.lang.Class>
 14: dup
 15: ifnonnull 29
 18: pop
 19: ldc #18=<String "[LSyncTest;">
 21: iconst_0
 22: invokestatic #23=<Method SyncTest.class$ (java.lang.String,boolean)java.lang.Class>
 25: dup
 26: putstatic #17=<Field SyncTest.class$SyncTest java.lang.Class>
 29: dup
 30: astore_2
 31: monitorenter
 32: getstatic #25=<Field SyncTest.counter int>
 35: iconst_1
 36: iadd
 37: putstatic #25=<Field SyncTest.counter int>
 40: aload_2
 41: monitorexit
 42: iinc 1 1
 45: iload_1
 46: ldc #26=<Integer 1000000>
 48: if_icmplt 5
 51: return
Exceptions (count: 2):
  start: 8, end: 10, handler: 8, type: 0 /* finally */
  start: 32, end: 42, handler: 8, type: 0 /* finally */
Attribute "LineNumberTable", length:30, count: 7
  line: 6 at pc: 0
  line: 6 at pc: 0
  line: 7 at pc: 5
  line: 8 at pc: 32
  line: 6 at pc: 42
  line: 6 at pc: 45
  line: 10 at pc: 51
-------------- next part --------------
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x40530aff in GC_suspend_handler (sig=30)
    at ../../../gcc33/boehm-gc/linux_threads.c:629
#2  0x407e675a in __pthread_sighandler () from /lib/libpthread.so.0
#3  0x4085b898 in sigaction () from /lib/libc.so.6
#4  0x407e2f35 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#5  0x407dff05 in pthread_cond_wait () from /lib/libpthread.so.0
#6  0x4035b0a0 in _Jv_CondWait(_Jv_ConditionVariable_t*, _Jv_Mutex_t*, long long, int) (cv=0x807b650, mu=0x807b630, millis=0, nanos=0)
    at ../../../gcc33/libjava/posix-threads.cc:143
#7  0x40385953 in java::lang::Thread::join(long long, int) (this=0x8096d20,
    millis=0, nanos=0) at ../../../gcc33/libjava/java/lang/natThread.cc:136
#8  0x403a26c7 in java.lang.Thread.join() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Thread.java:101
#9  0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#10 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#11 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x80dfe70,
    retp=0xbffff8d0, args=0x0) at ../../../gcc33/libjava/interpret.cc:1149
#12 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#13 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#14 0x403783bf in gnu::gcj::runtime::FirstThread::call_main() (this=0x0)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natFirstThread.cc:46
#15 0x403f8ab8 in gnu.gcj.runtime.FirstThread.run() (this=0x0)
    at ../../../gcc33/libjava/gnu/gcj/runtime/FirstThread.java:54
#16 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x0)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#17 0x4035d5ec in _Jv_RunMain(java::lang::Class*, char const*, int, char const**, bool) (klass=0x0, name=0xbffffb7a "SyncTest", argc=1, argv=0x0, is_jar=false)
    at ../../../gcc33/libjava/prims.cc:1010
#18 0x08048980 in main (argc=2, argv=0xbffffa54)
    at ../../../gcc33/libjava/gij.cc:156
(gdb) thread 2
[Switching to thread 2 (Thread 32769 (LWP 14801))]#0  0x408f1160 in poll ()
   from /lib/libc.so.6
(gdb) bt
#0  0x408f1160 in poll () from /lib/libc.so.6
#1  0x407e0a8e in __pthread_manager () from /lib/libpthread.so.0
(gdb) thread 3
[Switching to thread 3 (Thread 16386 (LWP 14802))]#0  0x4085b9a2 in sigsuspend
    () from /lib/libc.so.6
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x40530aff in GC_suspend_handler (sig=30)
    at ../../../gcc33/boehm-gc/linux_threads.c:629
#2  0x407e675a in __pthread_sighandler () from /lib/libpthread.so.0
#3  0x4085b898 in sigaction () from /lib/libc.so.6
#4  0x407e2f35 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#5  0x407dff05 in pthread_cond_wait () from /lib/libpthread.so.0
#6  0x4035b0a0 in _Jv_CondWait(_Jv_ConditionVariable_t*, _Jv_Mutex_t*, long long, int) (cv=0x80e2f9c, mu=0x80e2fa0, millis=0, nanos=0)
    at ../../../gcc33/libjava/posix-threads.cc:143
#7  0x4038141f in java::lang::Object::wait(long long, int) (this=0x8075f90,
    timeout=0, nanos=0) at ../../../gcc33/libjava/java/lang/natObject.cc:1166
#8  0x4038fca7 in java.lang.Object.wait() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Object.java:55
#9  0x403f8917 in gnu.gcj.runtime.FinalizerThread.run() (this=0x8096d98)
    at ../../../gcc33/libjava/gnu/gcj/runtime/FinalizerThread.java:62
#10 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x8096d98)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#11 0x4035b5c0 in really_start (x=0x8096d98)
    at ../../../gcc33/libjava/posix-threads.cc:375
#12 0x405319be in GC_start_routine (arg=0x807afa0)
    at ../../../gcc33/boehm-gc/linux_threads.c:1375
#13 0x407e0d53 in pthread_start_thread () from /lib/libpthread.so.0
(gdb) thread 4
[Switching to thread 4 (Thread 32771 (LWP 14803))]#0  0x4085b9a2 in sigsuspend
    () from /lib/libc.so.6
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x40530aff in GC_suspend_handler (sig=30)
    at ../../../gcc33/boehm-gc/linux_threads.c:629
#2  0x407e675a in __pthread_sighandler () from /lib/libpthread.so.0
#3  0x4085b898 in sigaction () from /lib/libc.so.6
#4  0x40832933 in _Unwind_IteratePhdrCallback (info=0x8, size=16,
    ptr=0xbf5ff314) at ../../gcc33/gcc/unwind-dw2-fde-glibc.c:255
#5  0x4091fad5 in dl_iterate_phdr () from /lib/libc.so.6
#6  0x40832ba5 in _Unwind_Find_FDE (pc=0x4053b1e6, bases=0xbf5ff364)
    at ../../gcc33/gcc/unwind-dw2-fde-glibc.c:283
#7  0x4082fc77 in _Unwind_FindEnclosingFunction (pc=0x4053b1e7)
    at ../../gcc33/gcc/unwind-dw2.c:209
#8  0x4037897f in gnu::gcj::runtime::StackTrace::getCompiledMethodRef(gnu::gcj::RawData*) (addr=0xfffffffc)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:120
#9  0x40378a12 in gnu::gcj::runtime::StackTrace::classAt(int) (
    this=0xbf5ff364, n=1079226854)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:140
#10 0x4037ae6a in java::lang::Class::forName(java::lang::String*) (
    className=0xfffffffc) at ../../../gcc33/libjava/java/lang/natClass.cc:102
#11 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#12 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#13 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x8094cc0,
    retp=0xbf5ff6f0, args=0x4053b1e6)
    at ../../../gcc33/libjava/interpret.cc:1149
#14 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#15 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#16 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#17 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#18 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x80999c0,
    retp=0xbf5ffa2c, args=0x4053b1e6)
    at ../../../gcc33/libjava/interpret.cc:1149
#19 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#20 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#21 0x403a2793 in java.lang.Thread.run() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Thread.java:134
#22 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x4053b1e6)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#23 0x4035b5c0 in really_start (x=0x4053b1e6)
    at ../../../gcc33/libjava/posix-threads.cc:375
#24 0x405319be in GC_start_routine (arg=0x807afa0)
    at ../../../gcc33/boehm-gc/linux_threads.c:1375
#25 0x407e0d53 in pthread_start_thread () from /lib/libpthread.so.0
(gdb) thread 5
[Switching to thread 5 (Thread 49156 (LWP 14804))]#0  0x4085b9a2 in sigsuspend
    () from /lib/libc.so.6
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x40530aff in GC_suspend_handler (sig=30)
    at ../../../gcc33/boehm-gc/linux_threads.c:629
#2  0x407e675a in __pthread_sighandler () from /lib/libpthread.so.0
#3  0x4085b898 in sigaction () from /lib/libc.so.6
#4  0x407e2f35 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#5  0x407e44c2 in __pthread_lock () from /lib/libpthread.so.0
#6  0x407e1945 in pthread_mutex_lock () from /lib/libpthread.so.0
#7  0x4091fa8f in dl_iterate_phdr () from /lib/libc.so.6
#8  0x40832ba5 in _Unwind_Find_FDE (pc=0x4053b1a6, bases=0xbf3ff364)
    at ../../gcc33/gcc/unwind-dw2-fde-glibc.c:283
#9  0x4082fc77 in _Unwind_FindEnclosingFunction (pc=0x4053b1a7)
    at ../../gcc33/gcc/unwind-dw2.c:209
#10 0x4037897f in gnu::gcj::runtime::StackTrace::getCompiledMethodRef(gnu::gcj::RawData*) (addr=0xfffffffc)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:120
#11 0x40378a12 in gnu::gcj::runtime::StackTrace::classAt(int) (
    this=0xbf3ff364, n=1079226790)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:140
#12 0x4037ae6a in java::lang::Class::forName(java::lang::String*) (
    className=0xfffffffc) at ../../../gcc33/libjava/java/lang/natClass.cc:102
#13 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#14 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#15 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x8094cc0,
    retp=0xbf3ff6f0, args=0x4053b1a6)
    at ../../../gcc33/libjava/interpret.cc:1149
#16 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#17 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#18 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#19 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#20 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x80999c0,
    retp=0xbf3ffa2c, args=0x4053b1a6)
    at ../../../gcc33/libjava/interpret.cc:1149
#21 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#22 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#23 0x403a2793 in java.lang.Thread.run() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Thread.java:134
#24 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x4053b1a6)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#25 0x4035b5c0 in really_start (x=0x4053b1a6)
    at ../../../gcc33/libjava/posix-threads.cc:375
#26 0x405319be in GC_start_routine (arg=0x807afa0)
    at ../../../gcc33/boehm-gc/linux_threads.c:1375
#27 0x407e0d53 in pthread_start_thread () from /lib/libpthread.so.0
(gdb) thread 6
[Switching to thread 6 (Thread 65541 (LWP 14805))]#0  0x4085b9a2 in sigsuspend
    () from /lib/libc.so.6
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x40530aff in GC_suspend_handler (sig=30)
    at ../../../gcc33/boehm-gc/linux_threads.c:629
#2  0x407e675a in __pthread_sighandler () from /lib/libpthread.so.0
#3  0x4085b898 in sigaction () from /lib/libc.so.6
#4  0x407e45d1 in __pthread_unlock () from /lib/libpthread.so.0
#5  0x407e1b03 in pthread_mutex_unlock () from /lib/libpthread.so.0
#6  0x4091fafe in dl_iterate_phdr () from /lib/libc.so.6
#7  0x40832ba5 in _Unwind_Find_FDE (pc=0x4053b1a6, bases=0xbf1ff364)
    at ../../gcc33/gcc/unwind-dw2-fde-glibc.c:283
#8  0x4082fc77 in _Unwind_FindEnclosingFunction (pc=0x4053b1a7)
    at ../../gcc33/gcc/unwind-dw2.c:209
#9  0x4037897f in gnu::gcj::runtime::StackTrace::getCompiledMethodRef(gnu::gcj::RawData*) (addr=0xfffffffc)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:120
#10 0x40378a12 in gnu::gcj::runtime::StackTrace::classAt(int) (
    this=0xbf1ff364, n=1079226790)
    at ../../../gcc33/libjava/gnu/gcj/runtime/natStackTrace.cc:140
#11 0x4037ae6a in java::lang::Class::forName(java::lang::String*) (
    className=0xfffffffc) at ../../../gcc33/libjava/java/lang/natClass.cc:102
#12 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#13 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#14 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x8094cc0,
    retp=0xbf1ff6f0, args=0x4053b1a6)
    at ../../../gcc33/libjava/interpret.cc:1149
#15 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#16 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#17 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#18 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#19 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x80999c0,
    retp=0xbf1ffa2c, args=0x4053b1a6)
    at ../../../gcc33/libjava/interpret.cc:1149
#20 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#21 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#22 0x403a2793 in java.lang.Thread.run() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Thread.java:134
#23 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x4053b1a6)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#24 0x4035b5c0 in really_start (x=0x4053b1a6)
    at ../../../gcc33/libjava/posix-threads.cc:375
#25 0x405319be in GC_start_routine (arg=0x807afa0)
    at ../../../gcc33/boehm-gc/linux_threads.c:1375
#26 0x407e0d53 in pthread_start_thread () from /lib/libpthread.so.0
(gdb) thread 7
[Switching to thread 7 (Thread 81926 (LWP 14806))]#0  0x4085b9a2 in sigsuspend
    () from /lib/libc.so.6
(gdb) bt
#0  0x4085b9a2 in sigsuspend () from /lib/libc.so.6
#1  0x407e2f35 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
#2  0x407e44c2 in __pthread_lock () from /lib/libpthread.so.0
#3  0x407e1945 in pthread_mutex_lock () from /lib/libpthread.so.0
#4  0x4091fa8f in dl_iterate_phdr () from /lib/libc.so.6
#5  0x4052e035 in GC_register_dynamic_libraries_dl_iterate_phdr ()
    at ../../../gcc33/boehm-gc/dyn_load.c:506
#6  0x4052e0d9 in GC_register_dynamic_libraries ()
    at ../../../gcc33/boehm-gc/dyn_load.c:568
#7  0x40535983 in GC_push_roots (all=1,
    cold_gc_frame=0xfffffffc <Address 0xfffffffc out of bounds>)
    at ../../../gcc33/boehm-gc/mark_rts.c:582
#8  0x40533696 in GC_mark_some (cold_gc_frame=0xbefff1f8 "")
    at ../../../gcc33/boehm-gc/mark.c:300
#9  0x4052b785 in GC_stopped_mark (stop_func=0x407baeb8 <GC_mark_stack>)
    at ../../../gcc33/boehm-gc/alloc.c:489
#10 0x4052b473 in GC_try_to_collect_inner (
    stop_func=0x4052af60 <GC_never_stop_func>)
    at ../../../gcc33/boehm-gc/alloc.c:350
#11 0x4052c4b3 in GC_collect_or_expand (needed_blocks=1, ignore_off_page=0)
    at ../../../gcc33/boehm-gc/alloc.c:974
#12 0x4052c59a in GC_allocobj (sz=4, kind=0)
    at ../../../gcc33/boehm-gc/alloc.c:1019
#13 0x405320c1 in GC_generic_malloc_inner (lb=16, k=0)
    at ../../../gcc33/boehm-gc/malloc.c:134
#14 0x40532f11 in GC_generic_malloc_many (lb=16, k=0, result=0x80e1024)
    at ../../../gcc33/boehm-gc/mallocx.c:496
#15 0x40530898 in GC_local_malloc_atomic (bytes=15)
    at ../../../gcc33/boehm-gc/linux_threads.c:370
#16 0x4035a915 in _Jv_AllocBytes(int) (size=135139336)
    at ../../../gcc33/libjava/boehm.cc:339
#17 0x4035c13c in _Jv_makeUtf8Const(char*, int) (
    s=0xbefff384 "SyncTest\234???\002.9@", len=2)
    at ../../../gcc33/libjava/prims.cc:252
#18 0x4037ad59 in java::lang::Class::forName(java::lang::String*, bool, java::lang::ClassLoader*) (className=0x8076320, initialize=1 '\001', loader=0x80adfc0)
    at ../../../gcc33/libjava/java/lang/natClass.cc:73
#19 0x4037ae9a in java::lang::Class::forName(java::lang::String*) (
    className=0xfffffffc) at ../../../gcc33/libjava/java/lang/natClass.cc:110
#20 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#21 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#22 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x8094cc0,
    retp=0xbefff6f0, args=0x4) at ../../../gcc33/libjava/interpret.cc:1149
#23 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#24 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#25 0x4053b1e7 in ffi_call_SYSV () at /tmp/ccBES7x4.s:40
#26 0x4053b1a7 in ffi_raw_call (cif=0x8, fn=0xfffffffc, rvalue=0x40941ba0,
    fake_avalue=0xfffffffc) at ../../../gcc33/libffi/src/x86/ffi.c:513
#27 0x4037315d in _Jv_InterpMethod::run(void*, ffi_raw*) (this=0x80999c0,
    retp=0xbefffa2c, args=0x4) at ../../../gcc33/libjava/interpret.cc:1149
#28 0x4036f45d in _Jv_InterpMethod::run_normal(ffi_cif*, void*, ffi_raw*, void*) (ret=0xfffffffc, args=0xfffffffc, __this=0xfffffffc)
    at ../../../gcc33/libjava/interpret.cc:249
#29 0x4053b05c in ffi_closure_raw_SYSV ()
    at ../../../gcc33/libffi/src/x86/ffi.c:392
#30 0x403a2793 in java.lang.Thread.run() (this=0xfffffffc)
    at ../../../gcc33/libjava/java/lang/Thread.java:134
#31 0x40385eec in _Jv_ThreadRun(java::lang::Thread*) (thread=0x4)
    at ../../../gcc33/libjava/java/lang/natThread.cc:285
#32 0x4035b5c0 in really_start (x=0x4)
    at ../../../gcc33/libjava/posix-threads.cc:375
#33 0x405319be in GC_start_routine (arg=0x807afa0)
    at ../../../gcc33/boehm-gc/linux_threads.c:1375
#34 0x407e0d53 in pthread_start_thread () from /lib/libpthread.so.0


More information about the Java mailing list