[Mono-bugs] [Bug 565159] New: deadlock using --compile-all (compute_class_bitmap) on a bad assembly

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Dec 16 10:05:03 EST 2009


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

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


           Summary: deadlock using --compile-all (compute_class_bitmap) on
                    a bad assembly
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.6.x
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: spouliot at novell.com
         QAContact: mono-bugs at lists.ximian.com
                CC: rkumpera at novell.com
          Found By: ---
           Blocker: ---


Created an attachment (id=332936)
 --> (http://bugzilla.novell.com/attachment.cgi?id=332936)
assembly to reproduce the deadlock

Look like an infinite recursion in compute_class_bitmap cause the deadlock
(instead of using all memory and crash).

MONO_PATH=/opt/mono/lib/moonlight/plugin/ gdb --args mono --security=core-clr
--compile-all System.unknown.50383.dll 

Program received signal SIGINT, Interrupt.
[Switching to Thread 0x7fe9bb0b9730 (LWP 2002)]
0x00007fe9ba1addd9 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
(gdb) t a a bt
warning: Can't attach LWP 2015: No such process
Cannot find new threads: generic error
(gdb) call mono_locks_dump(0)
Total locks (in 0 array(s)): 0, used: 0, on freelist: 0, to recycle: 0
(gdb) t 0
Thread ID 0 not known.
(gdb) bt
#0  0x00007fe9ba1addd9 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000000000648bd6 in _wapi_handle_timedwait_signal_handle (handle=0x400,
timeout=0x0, alertable=1, poll=0) at handles.c:1611
#2  0x00000000006488df in _wapi_handle_wait_signal (poll=0) at handles.c:1540
#3  0x00000000006419e7 in WaitForMultipleObjectsEx (numobjects=2,
handles=0xa29250, waitall=0, timeout=4294967295, alertable=0) at wait.c:724
#4  0x00000000005b392c in wait_for_tids_or_state_change (wait=0xa29250,
timeout=4294967295) at threads.c:2780
#5  0x00000000005b4263 in mono_thread_manage () at threads.c:2992
#6  0x00000000004a399d in compile_all_methods (ass=0xa28720, verbose=0,
opts=55667199) at driver.c:908
#7  0x00000000004a5c6c in mono_main (argc=4, argv=0x7fffc30d9f18) at
driver.c:1763
#8  0x0000000000418095 in main (argc=4, argv=0x7fffc30d9f18) at main.c:34
(gdb) t 1
[Switching to thread 1 (Thread 0x7fe9bb0b9730 (LWP 2002))]#0 
0x00007fe9ba1addd9 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
(gdb) bt
#0  0x00007fe9ba1addd9 in pthread_cond_wait@@GLIBC_2.3.2 () from
/lib64/libpthread.so.0
#1  0x0000000000648bd6 in _wapi_handle_timedwait_signal_handle (handle=0x400,
timeout=0x0, alertable=1, poll=0) at handles.c:1611
#2  0x00000000006488df in _wapi_handle_wait_signal (poll=0) at handles.c:1540
#3  0x00000000006419e7 in WaitForMultipleObjectsEx (numobjects=2,
handles=0xa29250, waitall=0, timeout=4294967295, alertable=0) at wait.c:724
#4  0x00000000005b392c in wait_for_tids_or_state_change (wait=0xa29250,
timeout=4294967295) at threads.c:2780
#5  0x00000000005b4263 in mono_thread_manage () at threads.c:2992
#6  0x00000000004a399d in compile_all_methods (ass=0xa28720, verbose=0,
opts=55667199) at driver.c:908
#7  0x00000000004a5c6c in mono_main (argc=4, argv=0x7fffc30d9f18) at
driver.c:1763
#8  0x0000000000418095 in main (argc=4, argv=0x7fffc30d9f18) at main.c:34
(gdb) t 3
[Switching to thread 3 (Thread 0x407f7950 (LWP 2006))]#0  0x00007fe9ba1afd01 in
sem_wait () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00007fe9ba1afd01 in sem_wait () from /lib64/libpthread.so.0
#1  0x000000000055df6c in finalizer_thread (unused=0x0) at gc.c:1022
#2  0x00000000005af431 in start_wrapper (data=0xa28310) at threads.c:662
#3  0x00000000006584b3 in thread_start_routine (args=0x9fba48) at
wthreads.c:286
#4  0x00000000006716ce in GC_start_routine (arg=0x7fe9baf6be70) at
pthread_support.c:1390
#5  0x00007fe9ba1aa040 in start_thread () from /lib64/libpthread.so.0
#6  0x00007fe9b9cc708d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()
(gdb) t 4
[Switching to thread 4 (Thread 0x40fff950 (LWP 2007))]#0  0x00007fe9ba1b04c4 in
__lll_lock_wait () from /lib64/libpthread.so.0
(gdb) bt
#0  0x00007fe9ba1b04c4 in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fe9ba1abcbb in _L_lock_312 () from /lib64/libpthread.so.0
#2  0x00007fe9ba1ab6e1 in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00000000005ce20b in mono_loader_lock () at loader.c:2005
#4  0x000000000056be2a in mono_class_setup_fields_locking (class=0xa4da10) at
class.c:1371
#5  0x0000000000579b98 in mono_class_get_fields (klass=0xa4da10,
iter=0x40eb7900) at class.c:7076
#6  0x000000000062af28 in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59650, max_set=0x40ffdce4, static_fields=0)
at object.c:636
#7  0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59645, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#8  0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59640, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#9  0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59635, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#10 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59630, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#11 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59625, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#12 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59620, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#13 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59615, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#14 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59610, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#15 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59605, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#16 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59600, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#17 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59595, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#18 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59590, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#19 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59585, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#20 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59580, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#21 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59575, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#22 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59570, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#23 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59565, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#24 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59560, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#25 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59555, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#26 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59550, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#27 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59545, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#28 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59540, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#29 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59535, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#30 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59530, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#31 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59525, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#32 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59520, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#33 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59515, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#34 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59510, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#35 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59505, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#36 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59500, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#37 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59495, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#38 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59490, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#39 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59485, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#40 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59480, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#41 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59475, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#42 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59470, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#43 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59465, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#44 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59460, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#45 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59455, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#46 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59450, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#47 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59445, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#48 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59440, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#49 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59435, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#50 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59430, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#51 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59425, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#52 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59420, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#53 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59415, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#54 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59410, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#55 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59405, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#56 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59400, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#57 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59395, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#58 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59390, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#59 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59385, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#60 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59380, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#61 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59375, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#62 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59370, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#63 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59365, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#64 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59360, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#65 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59355, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#66 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59350, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#67 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59345, max_set=0x40ffdce4, static_fields=0)
at object.c:697
#68 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=59340, max_set=0x40ffdce4, static_fields=0)
at object.c:697
---Type <return> to continue, or q <return> to quit---

..

#11936 0x000000000062aefa in compute_class_bitmap (class=0xa4da10,
bitmap=0x40ffdcc0, size=256, offset=0, max_set=0x40ffdce4, static_fields=0) at
object.c:697
---Type <return> to continue, or q <return> to quit---
#11937 0x000000000062b1d0 in mono_class_compute_gc_descriptor (class=0xa4da10)
at object.c:940
#11938 0xffffffffffffffff in ?? ()

..

#12860 0xffffffffffffffff in ?? ()
#12861 0x000007d2000007df in ?? ()
#12862 0x0000000040fff9f0 in ?? ()
#12863 0x0000000040fff9f0 in ?? ()
#12864 0xffffffffffffffe0 in ?? ()
#12865 0x0000000000000000 in ?? ()
(gdb) t 5
Thread ID 5 not known.
(gdb) up 5
#5  0x0000000000579b98 in mono_class_get_fields (klass=0xa4da10,
iter=0x40eb7900) at class.c:7076
7076            mono_class_setup_fields_locking (klass);
(gdb) p klass->name
$1 = 0x7fe9baf4835f "Regex"
(gdb) p klass->name_space
$2 = 0x7fe9baf481b9 "System.Text.RegularExpressions"

-- 
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