[Mono-bugs] [Bug 605406] New: sending a sig quit deadlocks the GC

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed May 12 20:17:02 EDT 2010


http://bugzilla.novell.com/show_bug.cgi?id=605406

http://bugzilla.novell.com/show_bug.cgi?id=605406#c0


           Summary: sending a sig quit deadlocks the GC
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: GC
        AssignedTo: lupus at novell.com
        ReportedBy: amcgovern at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


Created an attachment (id=361894)
 --> (http://bugzilla.novell.com/attachment.cgi?id=361894)
testcase

If the attached testcase is run (choose option 2, though any should be fine)
and then a sigquit is sent to the application, the GC deadlocks as follows:


#0  0x00007fab16250049 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x00000000005d80a2 in GC_wait_marker () at pthread_support.c:1785
#2  0x00000000005ccc2a in GC_help_marker (my_mark_no=9610) at mark.c:1116
#3  0x00000000005d6d90 in GC_mark_thread (id=0x0) at pthread_support.c:548
#4  0x00007fab1624b65d in start_thread () from /lib64/libpthread.so.0
#5  0x00007fab15fbae1d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fab16b4d910 (LWP 13616)):
#0  0x00007fab16253341 in nanosleep () from /lib64/libpthread.so.0
#1  0x000000000059ef32 in collection_thread (unused=<value optimized out>) at
collection.c:34
#2  0x00007fab1624b65d in start_thread () from /lib64/libpthread.so.0
#3  0x00007fab15fbae1d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fab14f53910 (LWP 13617)):
#0  0x00007fab16252624 in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fab1624df35 in _L_lock_941 () from /lib64/libpthread.so.0
#2  0x00007fab1624dd58 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000005d7fe0 in GC_lock () at pthread_support.c:1679
#4  0x00000000005dd879 in GC_invoke_finalizers () at finalize.c:772
---Type <return> to continue, or q <return> to quit---
#5  0x00000000004f2098 in finalizer_thread (unused=<value optimized out>) at
gc.c:1074
#6  0x000000000058184c in start_wrapper (data=<value optimized out>) at
threads.c:747
#7  0x000000000059c8b4 in thread_start_routine (args=0x977ac0) at
wthreads.c:285
#8  0x00000000005d7d05 in GC_start_routine (arg=0x7fab16b3bfc0) at
pthread_support.c:1390
#9  0x00007fab1624b65d in start_thread () from /lib64/libpthread.so.0
#10 0x00007fab15fbae1d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fab16cba730 (LWP 13614)):
#0  0x00007fab16252624 in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fab1624df35 in _L_lock_941 () from /lib64/libpthread.so.0
#2  0x00007fab1624dd58 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000005d7fe0 in GC_lock () at pthread_support.c:1679
#4  0x00000000005cf8c6 in GC_generic_malloc_many (lb=24, k=1, result=0x8db4e0)
at mallocx.c:375
#5  0x00000000005d6939 in GC_local_malloc (bytes=24) at pthread_support.c:366
#6  0x00000000005b301a in mono_g_hash_table_insert_replace
(hash=0x7fab16b63f40, key=0x948018, value=
    0x7fab147b5d20, replace=0) at mono-hash.c:451
#7  0x00000000004fdf24 in mono_type_get_object (domain=0x7fab16b62d48,
type=0x948018) at reflection.c:6511
#8  0x000000000058972c in mono_class_create_runtime_vtable
(raise_on_error=<value optimized out>, 
    class=<value optimized out>, domain=<value optimized out>) at object.c:2066
#9  mono_class_vtable_full (raise_on_error=<value optimized out>, class=<value
optimized out>, 
    domain=<value optimized out>) at object.c:1752
#10 0x000000000058c609 in mono_object_new (domain=0x8db9c0, klass=Traceback
(most recent call last):
---Type <return> to continue, or q <return> to quit---
  File "/opt/mono/bin/mono-gdb.py", line 165, in to_string
    class_name = stringify_class_name (klass ["name_space"].string (), klass
["name"].string ())
RuntimeError: Cannot access memory at address 0xc8
) at object.c:4156
#11 0x000000000058dc83 in mono_method_call_message_new
(method="InternalCancelHandler:BeginInvoke ()", params=
    0x0, invoke="InternalCancelHandler:Invoke ()", cb=<value optimized out>,
state=<value optimized out>)
    at object.c:5864
#12 0x00000000005df04f in do_console_cancel_event () at console-unix.c:252
#13 sigint_handler () at console-unix.c:268
#14 <signal handler called>
#15 0x00000000005cc554 in GC_mark_from (mark_stack_top=0x7fab16b6dff0,
mark_stack=0x7fab16b6e000, 
    mark_stack_limit=0x7fab16b7e000) at mark.c:634
#16 0x00000000005dd4ad in GC_finalize () at finalize.c:639
#17 0x00000000005d3e53 in GC_finish_collection () at alloc.c:696
#18 0x00000000005d3622 in GC_try_to_collect_inner (stop_func=0x5d2faf
<GC_never_stop_func>) at alloc.c:393
#19 0x00000000005d4686 in GC_collect_or_expand (needed_blocks=1,
ignore_off_page=0) at alloc.c:1045
#20 0x00000000005d4901 in GC_allocobj (sz=14, kind=4) at alloc.c:1125
#21 0x00000000005d283d in GC_generic_malloc_inner (lb=104, k=4) at malloc.c:136
#22 0x00000000005cfca2 in GC_generic_malloc_many (lb=104, k=4, result=0x8db738)
at mallocx.c:513
#23 0x00000000005d6bc1 in GC_local_gcj_malloc (bytes=104,
ptr_to_struct_containing_descr=0x990770)
    at pthread_support.c:446
#24 0x00000000406f73da in ?? ()
#25 0x000000000091fe30 in ?? ()
---Type <return> to continue, or q <return> to quit---
#26 0x00007fab16b6df20 in ?? ()
#27 0x0000000000000001 in ?? ()
#28 0x0000000040593de2 in ?? ()
#29 0x0000000000925e15 in ?? ()
#30 0x00007fab16b6d7c0 in ?? ()
#31 0x00007fff453922a0 in ?? ()
#32 0x0000000000000000 in ?? ()

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list