[Mono-bugs] [Bug 633287] New: Moq.4.0.10818.0 crashes Mono runtime

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Aug 20 12:55:59 EDT 2010


https://bugzilla.novell.com/show_bug.cgi?id=633287

https://bugzilla.novell.com/show_bug.cgi?id=633287#c0


           Summary: Moq.4.0.10818.0 crashes Mono runtime
    Classification: Mono
           Product: Mono: Runtime
           Version: SVN
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: denisv at post.skynet.lt
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8)
Gecko/20100722 Firefox/3.6.8

Mono version: Git 99c94ac7ea8cd37eb86f5b7035f8c45dc0be877c (pulled 2010-08-20)
OS: Debian Squeeze

Moq.4.0.10818.0 crashes Mono runtime as soon as a Mock object is created.

Moq binaries and source code can be downloaded from
http://code.google.com/p/moq/


Reproducible: Always

Steps to Reproduce:
1. Copy Moq.dll to working directory (attached)
2. Create test.cs with the following code:
/* code starts */
using Moq;

interface Interface1
{
}

class Program
{
        public static void Main()
        {
                var mock = new Mock<Interface1>();
        }
}
/* code ends */
3. dmcs test.cs /r:Moq.dll
4. mono test.exe >err.log 2>&1
5. less err.log

Actual Results:  
Mono runtime crashes with a failed assertion:

* Assertion at method-to-ir.c:6326, condition `!mono_method_check_context_used
(cmethod)' not met

Stacktrace:

  at Moq.Mock`1..cctor () <0xffffffff>
  at Moq.Mock`1..cctor () <0x0000d>
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) <0x0002a>
  at Program.Main () <0xffffffff>
  at Program.Main () <0x0001e>
  at (wrapper runtime-invoke) object.runtime_invoke_void
(object,intptr,intptr,intptr) <0x0002a>

Native stacktrace:

    mono() [0x80d8179]
    [0xb7f8740c]
    /lib/i686/cmov/libc.so.6(abort+0x182) [0xb7e09b82]
    mono() [0x820820e]
    mono() [0x820828d]
    mono() [0x808a838]
    mono() [0x8060ff1]
    mono() [0x806319e]
    mono() [0x8063c58]
    mono(mono_runtime_invoke+0x40) [0x81483d0]
    mono() [0x814e50e]
    mono(mono_runtime_class_init+0x19) [0x814ed69]
    mono() [0x80db452]
    [0xb7f75264]
    [0xb7196ddb]
    mono() [0x8063ab8]
    mono(mono_runtime_invoke+0x40) [0x81483d0]
    mono() [0x814e50e]
    mono() [0x8063421]
    mono() [0x80639ce]
    mono() [0x80dbade]
    [0xb7f75066]
    [0xb7196ddb]
    mono() [0x8063ab8]
    mono(mono_runtime_invoke+0x40) [0x81483d0]
    mono(mono_runtime_exec_main+0xd6) [0x814bc86]
    mono(mono_main+0x1b52) [0x80b5682]
    mono() [0x8059118]
    /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb7df2c76]
    mono() [0x8058ec1]

Debug info from gdb:

Mono support loaded.
[Thread debugging using libthread_db enabled]
[New Thread 0xb6db6b70 (LWP 16486)]
[New Thread 0xb7c64b70 (LWP 16485)]
0xb7f87424 in __kernel_vsyscall ()
  3 Thread 0xb7c64b70 (LWP 16485)  0xb7f87424 in __kernel_vsyscall ()
  2 Thread 0xb6db6b70 (LWP 16486)  0xb7f87424 in __kernel_vsyscall ()
* 1 Thread 0xb7ddbb50 (LWP 16484)  0xb7f87424 in __kernel_vsyscall ()

Thread 3 (Thread 0xb7c64b70 (LWP 16485)):
#0  0xb7f87424 in __kernel_vsyscall ()
#1  0xb7f2cf7f in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/i686/cmov/libpthread.so.0
#2  0x082112e3 in GC_wait_marker () at pthread_support.c:1785
#3  0x0820ebac in GC_help_marker (my_mark_no=2) at mark.c:1116
#4  0x08210202 in GC_mark_thread (id=0x0) at pthread_support.c:548
#5  0xb7f28955 in start_thread () from /lib/i686/cmov/libpthread.so.0
#6  0xb7ea810e in clone () from /lib/i686/cmov/libc.so.6

Thread 2 (Thread 0xb6db6b70 (LWP 16486)):
#0  0xb7f87424 in __kernel_vsyscall ()
#1  0xb7f2f385 in sem_wait@@GLIBC_2.1 () from /lib/i686/cmov/libpthread.so.0
#2  0x081f54e8 in mono_sem_wait (sem=0x82e0b40, alertable=0)
    at mono-semaphore.c:102
#3  0x08145b80 in finalizer_thread (unused=0x0) at gc.c:1048
#4  0x08135434 in start_wrapper (data=0x9777488) at threads.c:747
#5  0x081e734f in thread_start_routine (args=0x9763414) at wthreads.c:285
#6  0x08210f80 in GC_start_routine (arg=0x4efe0) at pthread_support.c:1390
#7  0xb7f28955 in start_thread () from /lib/i686/cmov/libpthread.so.0
#8  0xb7ea810e in clone () from /lib/i686/cmov/libc.so.6

Thread 1 (Thread 0xb7ddbb50 (LWP 16484)):
#0  0xb7f87424 in __kernel_vsyscall ()
#1  0xb7f3009b in read () from /lib/i686/cmov/libpthread.so.0
#2  0x080d8325 in mono_handle_native_sigsegv (signal=6, ctx=0xbfc9cc6c)
    at mini-exceptions.c:1939
#3  <signal handler called>
#4  0xb7f87424 in __kernel_vsyscall ()
#5  0xb7e06751 in raise () from /lib/i686/cmov/libc.so.6
#6  0xb7e09b82 in abort () from /lib/i686/cmov/libc.so.6
#7  0x0820820e in monoeg_g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR, 
    format=0x82306f0 "* Assertion at %s:%d, condition `%s' not met\n", args=
    0xbfc9d104 "P\025#\b\266\030") at goutput.c:134
#8  0x0820828d in monoeg_assertion_message (format=
    0x82306f0 "* Assertion at %s:%d, condition `%s' not met\n")
    at goutput.c:154
#9  0x0808a838 in mono_method_to_ir (cfg=0xb6b03de0, method=
    "Moq.Proxy.CastleProxyFactory:.cctor ()", start_bblock=0xb6b041cc, 
    end_bblock=0xb6b0426c, return_var=0x0, dont_inline=0xb6b060d8, inline_args=
    0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:6326
#10 0x08060ff1 in mini_method_compile (method=
    "Moq.Proxy.CastleProxyFactory:.cctor ()", opts=59861503, domain=0x25e70, 
    run_cctors=1, compile_aot=<value optimized out>, parts=0) at mini.c:4116
#11 0x0806319e in mono_jit_compile_method_inner (method=
    Traceback (most recent call last):
  File "/opt/mono/bin/mono-gdb.py", line 152, in to_string
    klass = val ["klass"].dereference ()
RuntimeError: Cannot access memory at address 0xe
, opt=59861503, ex=<value optimized out>) at mini.c:4802
#12 mono_jit_compile_method_with_opt (method=Traceback (most recent call last):
  File "/opt/mono/bin/mono-gdb.py", line 152, in to_string
    klass = val ["klass"].dereference ()
RuntimeError: Cannot access memory at address 0xe
, opt=59861503, ex=<value optimized out>) at mini.c:5010
#13 0x08063c58 in mono_jit_runtime_invoke (method=
    "Moq.Proxy.CastleProxyFactory:.cctor ()", obj=0x0, params=0x0, exc=
    0xbfc9d5bc) at mini.c:5208
#14 0x081483d0 in mono_runtime_invoke (method=
    "Moq.Proxy.CastleProxyFactory:.cctor ()", obj=0x0, params=0x0, exc=
    0xbfc9d5bc) at object.c:2709
#15 0x0814e50e in mono_runtime_class_init_full (vtable=0x972a800, 
    raise_exception=1) at object.c:359
#16 0x0814ed69 in mono_runtime_class_init (vtable=0x972a800) at object.c:246
#17 0x080db452 in mono_class_init_trampoline (regs=0xbfc9d678, code=
    0xb7196ec6 "\203\354\fh", vtable=0x972a800, tramp=0x0)
    at mini-trampolines.c:757
#18 0xb7f75264 in ?? ()
#19 0xb7196ddb in ?? ()
#20 0x08063ab8 in mono_jit_runtime_invoke (method="Moq.Mock`1:.cctor ()", obj=
    0x0, params=0x0, exc=0xbfc9d78c) at mini.c:5373
#21 0x081483d0 in mono_runtime_invoke (method="Moq.Mock`1:.cctor ()", obj=0x0, 
    params=0x0, exc=0xbfc9d78c) at object.c:2709
#22 0x0814e50e in mono_runtime_class_init_full (vtable=0x972a5d8, 
    raise_exception=0) at object.c:359
#23 0x08063421 in mono_jit_compile_method_inner (method=<value optimized out>, 
    opt=<value optimized out>, ex=<value optimized out>) at mini.c:4959
#24 mono_jit_compile_method_with_opt (method=<value optimized out>, 
    opt=<value optimized out>, ex=<value optimized out>) at mini.c:5010
#25 0x080639ce in mono_jit_compile_method (method="Moq.Mock`1:.ctor ()")
    at mini.c:5035
#26 0x080dbade in common_call_trampoline (regs=<value optimized out>, code=
    0xb7196d9f "\203\304\020\311\303h0\032\260\266\351z\342", <incomplete
sequence \335>, m="Moq.Mock`1:.ctor ()", tramp=0x0, vt=0x0, vtable_slot=0x0, 
    need_rgctx_tramp=0) at mini-trampolines.c:453
#27 0xb7f75066 in ?? ()
#28 0xb7196ddb in ?? ()
#29 0x08063ab8 in mono_jit_runtime_invoke (method="Program:Main ()", obj=0x0, 
    params=0xbfc9da5c, exc=0x0) at mini.c:5373
#30 0x081483d0 in mono_runtime_invoke (method="Program:Main ()", obj=0x0, 
    params=0xbfc9da5c, exc=0x0) at object.c:2709
#31 0x0814bc86 in mono_runtime_exec_main (method="Program:Main ()", args=
    0x2de40, exc=0x0) at object.c:3833
#32 0x080b5682 in main_thread_handler (argc=2, argv=0xbfc9dc44) at driver.c:999
#33 mono_main (argc=2, argv=0xbfc9dc44) at driver.c:1836
#34 0x08059118 in mono_main_with_options (argc=2, argv=0xbfc9dc44) at main.c:66
#35 main (argc=2, argv=0xbfc9dc44) at main.c:97

=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================



Expected Results:  
Mono doesn't crash in native code

-- 
Configure bugmail: https://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