[Mono-list] gc problem?
Neale.Ferguson@SoftwareAG-USA.com
Neale.Ferguson@SoftwareAG-USA.com
Fri, 7 May 2004 09:09:20 -0400
I am getting the s390 JIT fixed for the beta 1 level of code. I'm =
testing the exception handling and my test case hangs as the backtrace =
information (I believe) is being created. There's a call for a =
relatively large amount of storage which gets the gc stuff involved. The =
whole process just hangs as the executing thread (4) issues and waits on =
a pthread_kill (sigsuspend) to thread (1) which never completes. I'm =
using pthreads not NPTL:
#1 0x401e63e8 in pthread_kill () from /lib/libpthread.so.0
#2 0x4014a5e8 in GC_suspend_all () at linux_threads.c:930
#3 0x4014a6ae in linux_stop_world () at linux_threads.c:954
#4 0x4014a824 in GC_stop_world () at linux_threads.c:1007
#5 0x40143d06 in GC_stopped_mark (stop_func=3D0x32c8) at alloc.c:479
#6 0x4014392a in GC_try_to_collect_inner (stop_func=3D0x4014313c =
<GC_never_stop_func>)
at alloc.c:362
#7 0x40144cbc in GC_collect_or_expand (needed_blocks=3D4, =
ignore_off_page=3D0) at alloc.c:1005
#8 0x4014baf8 in GC_alloc_large (lw=3D3179, k=3D1, flags=3D0) at =
malloc.c:60
#9 0x4014bf4e in GC_generic_malloc (lb=3D4, k=3D1) at malloc.c:202
#10 0x4014c240 in GC_malloc (lb=3D12714) at malloc.c:309
#11 0x400bddce in mono_string_new_size (domain=3D0x0, len=3D6350) at =
object.c:1565
#12 0x400bdc8c in mono_string_new_utf16 (domain=3D0x0, text=3D0x4ed4a0, =
len=3D6350) at object.c:1965
#13 0x400bdf38 in mono_string_new (domain=3D0x428ed8, text=3D0x0) at =
object.c:2053
#14 0x400a1ec6 in mono_arch_handle_exception (uc=3D0x0, obj=3D0x432f50, =
test_only=3D1)
at exceptions-s390.c:1048
#15 0x400a1d5c in mono_arch_handle_exception (uc=3D0x0, obj=3D0x432f50, =
test_only=3D0)
at exceptions-s390.c:1015
#16 0x400a0df6 in throw_exception (exc=3D0x432f50, ip=3D3233797672, =
sp=3D1090561056,
int_regs=3D0x4100a110, fp_regs=3D0x4100a360, acc_regs=3D0x4100a3e0, =
fpc=3D0)
at exceptions-s390.c:480
#17 0x401c5df0 in start.3 () from =
/FS/fs0300/usanefe/mono/mono/mini/.libs/libmono.so.0
Thread 3 (Thread 1026 (LWP 13050)):
#0 0x40570f56 in nanosleep () from /lib/libc.so.6
#1 0x401e6236 in __pthread_timedsuspend_new () from =
/lib/libpthread.so.0
#2 0x401e2a76 in pthread_cond_timedwait_relative () from =
/lib/libpthread.so.0
#3 0x401e2c0a in pthread_cond_timedwait () from /lib/libpthread.so.0
#4 0x40126772 in _wapi_handle_wait_signal_handle (handle=3D0x0) at =
handles-private.h:90
#5 0x401379d2 in WaitForSingleObject (handle=3D0x3, =
timeout=3D4294967295) at wait.c:99
#6 0x400d4034 in finalizer_thread (unused=3D0xfffffffc) at gc.c:530
#7 0x400e260c in start_wrapper (data=3D0xfffffffc) at threads.c:239
#8 0x40136efc in timed_thread_start_routine (args=3D0xfffffffc) at =
timed-thread.c:129
#9 0x4014b61e in GC_start_routine (arg=3D0xfffffffc) at =
linux_threads.c:1663
#10 0x401e384c in pthread_start_thread () from /lib/libpthread.so.0
#11 0x401e38e4 in pthread_start_thread_event () from =
/lib/libpthread.so.0
Thread 2 (Thread 2049 (LWP 13049)):
#0 0x40597b94 in poll () from /lib/libc.so.6
#1 0x401e355e in __pthread_manager () from /lib/libpthread.so.0
#2 0x401e374e in __pthread_manager_event () from /lib/libpthread.so.0
#3 0x405a01b8 in thread_start () from /lib/libc.so.6
Thread 1 (Thread 1024 (LWP 13000)):
#0 0x40570f56 in nanosleep () from /lib/libc.so.6
#1 0x401e6236 in __pthread_timedsuspend_new () from =
/lib/libpthread.so.0
#2 0x401e2a76 in pthread_cond_timedwait_relative () from =
/lib/libpthread.so.0
#3 0x401e2c0a in pthread_cond_timedwait () from /lib/libpthread.so.0
#4 0x40126772 in _wapi_handle_wait_signal_handle (handle=3D0x0) at =
handles-private.h:90
#5 0x401379d2 in WaitForSingleObject (handle=3D0x8, =
timeout=3D4294967295) at wait.c:99
#6 0x401384ca in WaitForMultipleObjects (numobjects=3D1, =
handles=3D0x4be8c0, waitall=3D1,
timeout=3D4294967295) at wait.c:387
#7 0x400e3b2c in wait_for_tids (wait=3D0x4be8c0, timeout=3D8) at =
threads.c:1097
#8 0x400e3d84 in mono_thread_manage () at threads.c:1220
#9 0x400bca0e in mono_runtime_exec_managed_code (domain=3D0xfffffffc, =
main_func=3D0,
main_args=3D0x5f52198) at object.c:1419
#10 0x40092304 in mono_main (argc=3D1085383560, argv=3D0x7fffefd0) at =
driver.c:798
#11 0x00400758 in main (argc=3D-4, argv=3D0x0) at main.c:6
Neale Ferguson=20
R&D Fellow=20
Software AG=20