http://bugzilla.novell.com/show_bug.cgi?id=569390
http://bugzilla.novell.com/show_bug.cgi?id=569390#c0 Summary: SIGSEGV Error with MarshalByRefObject implementing a generic interface Classification: Mono Product: Mono: Runtime Version: SVN Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: JIT AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- The following sample crashes Mono: using System; //using NUnit.Framework; namespace Limaki.Tests.MonoGenericError2 { //[TestFixture] public class GenericErrorTest { public static void Main (string[] args) { var test = new GenericErrorTest (); test.Test1 (); Console.WriteLine ("Test1 passed"); test = new GenericErrorTest (); test.Test2 (); Console.WriteLine ("Test2 passed"); Console.WriteLine ("ErrorFree!"); } //[Test] public void Test1 () { var display = new DisplayDevice<object> (); display.Error1 (); } //[Test] public void Test2 () { var display = new DisplayDevice<object> (); display.Error2 (); } } public interface IDisplayDevice<T> { Display<T> Display { get; set; } } public class DisplayDevice<T> : MarshalByRefObject, IDisplayDevice<T> { public Display<T> Display { get; set; } public void Error1 () { var deviceInstrumenter = new DeviceInstrumenter<T> (); deviceInstrumenter.Device = this; var display = new Display<T> (); deviceInstrumenter.Factor (display); } public void Error2 () { var display = new Display<T> (); this.Display = display; } } public class Display<T> { public T Data { get; set; } } public class DeviceInstrumenter<T> { public virtual DisplayDevice<T> Device { get; set; } public virtual void Factor (Display<T> display) { Device.Display = display; } } } The crash is: ** ** ERROR:(method-to-ir.c:5466):mono_method_to_ir: assertion failed: (!sig->has_type_parameters) Stacktrace: at Limaki.Tests.MonoGenericError2.DeviceInstrumenter`1<object>.Factor (Limaki.Tests.MonoGenericError2.Display`1<object>) <0xffffffff> at Limaki.Tests.MonoGenericError2.DeviceInstrumenter`1<object>.Factor (Limaki.Tests.MonoGenericError2.Display`1<object>) <0x00026> at Limaki.Tests.MonoGenericError2.DisplayDevice`1<object>.Error1 () <0x00089> at (wrapper remoting-invoke-with-check) Limaki.Tests.MonoGenericError2.DisplayDevice`1<object>.Error1 () <0x00053> at Limaki.Tests.MonoGenericError2.GenericErrorTest.Test1 () <0x00034> at Limaki.Tests.MonoGenericError2.GenericErrorTest.Main (string[]) <0x00020> at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0x00043> Native stacktrace: mono [0x80d7ca2] [0xffffe410] /lib/libc.so.6(abort+0x188) [0xb7d10238] /usr/lib/libglib-2.0.so.0(g_assertion_message+0x129) [0xb7efd049] /usr/lib/libglib-2.0.so.0 [0xb7efd4dd] mono [0x8079dce] mono [0x8062702] mono [0x80642b1] mono [0x8064d3f] mono [0x80da4c6] mono [0x80db162] [0xb7f59066] [0xb712a5b2] [0xb712a4f4] [0xb712a3fd] [0xb712a1b9] [0xb712a284] mono [0x8064e25] mono(mono_runtime_invoke+0x40) [0x817c670] mono(mono_runtime_exec_main+0xe2) [0x817ff02] mono(mono_runtime_run_main+0x16d) [0x818027d] mono(mono_main+0x196c) [0x80b67ec] mono [0x805b9c1] /lib/libc.so.6(__libc_start_main+0xe5) [0xb7cfa5f5] mono(g_ascii_strcasecmp+0x99) [0x805b8f1] Debug info from gdb: [Thread debugging using libthread_db enabled] [New Thread 0xb7ce26f0 (LWP 14239)] [New Thread 0xb6d29b90 (LWP 14242)] [New Thread 0xb7129b90 (LWP 14241)] [New Thread 0xb7bbdb90 (LWP 14240)] 0xffffe430 in __kernel_vsyscall () 4 Thread 0xb7bbdb90 (LWP 14240) 0xffffe430 in __kernel_vsyscall () 3 Thread 0xb7129b90 (LWP 14241) 0xffffe430 in __kernel_vsyscall () 2 Thread 0xb6d29b90 (LWP 14242) 0xffffe430 in __kernel_vsyscall () 1 Thread 0xb7ce26f0 (LWP 14239) 0xffffe430 in __kernel_vsyscall () Thread 4 (Thread 0xb7bbdb90 (LWP 14240)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb7e56c15 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so0 #2 0x081fc68b in GC_wait_marker () at pthread_support.c:1785 #3 0x081ffeee in GC_help_marker (my_mark_no=2) at mark.c:1116 #4 0x081fb515 in GC_mark_thread (id=0x0) at pthread_support.c:548 #5 0xb7e53175 in start_thread () from /lib/libpthread.so.0 #6 0xb7db1dae in clone () from /lib/libc.so.6 Thread 3 (Thread 0xb7129b90 (LWP 14241)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb7e5a3e6 in nanosleep () from /lib/libpthread.so.0 #2 0x081e18e8 in collection_thread (unused=0x0) at collection.c:34 #3 0xb7e53175 in start_thread () from /lib/libpthread.so.0 #4 0xb7db1dae in clone () from /lib/libc.so.6 Thread 2 (Thread 0xb6d29b90 (LWP 14242)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb7e58ee5 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0 #2 0x08156328 in finalizer_thread (unused=0x0) at gc.c:1022 #3 0x08150166 in start_wrapper (data=0x832f3c8) at threads.c:721 #4 0x081dbb96 in thread_start_routine (args=0x831b4a4) at wthreads.c:286 #5 0x081fc31d in GC_start_routine (arg=0x26f20) at pthread_support.c:1390 #6 0xb7e53175 in start_thread () from /lib/libpthread.so.0 #7 0xb7db1dae in clone () from /lib/libc.so.6 Thread 1 (Thread 0xb7ce26f0 (LWP 14239)): #0 0xffffe430 in __kernel_vsyscall () #1 0xb7e59bab in read () from /lib/libpthread.so.0 #2 0x080d7e23 in mono_handle_native_sigsegv (signal=6, ctx=0xbfa93d9c) at mini-exceptions.c:1834 #3 <signal handler called> #4 0xffffe430 in __kernel_vsyscall () #5 0xb7d0e900 in raise () from /lib/libc.so.6 #6 0xb7d10238 in abort () from /lib/libc.so.6 #7 0xb7efd049 in g_assertion_message () from /usr/lib/libglib-2.0.so.0 #8 0xb7efd4dd in g_assertion_message_expr () from /usr/lib/libglib-2.0.so.0 #9 0x08079dce in mono_method_to_ir (cfg=0x8337818, method=0x833ea7c, start_bblock=0x0, end_bblock=0x0, return_var=0x0, dont_inline=0x0, inline_args=0x0, inline_offset=0, is_virtual_call=0) at method-to-ir.c:5466 #10 0x08062702 in mini_method_compile (method=0x833ea7c, opts=59861503, domain=0x25e70, run_cctors=<value optimized out>, compile_aot=<value optimized out>, parts=0) at mini.c:3745 #11 0x080642b1 in mono_jit_compile_method_with_opt (method=0x833ea7c, opt=59861503, ex=0xbfa947a0) at mini.c:4361 #12 0x08064d3f in mono_jit_compile_method (method=0x833ea7c) at mini.c:4578 #13 0x080da4c6 in common_call_trampoline (regs=0xbfa94878, code=0xb712a636 "\203�\020��", arg=<value optimized out>, tramp=0x0, vt=0x0, vtable_slot=0x0, need_rgctx_tramp=0) at mini-trampolines.c:470 #14 0x080db162 in mono_magic_trampoline (regs=0xbfa94878, code=0xb712a636 "\203�\020��", arg=0x833ea7c, tramp=0x0) at mini-trampolines.c:586 #15 0xb7f59066 in ?? () #16 0xb712a5b2 in ?? () #17 0xb712a4f4 in ?? () #18 0xb712a3fd in ?? () #19 0xb712a1b9 in ?? () #20 0xb712a284 in ?? () #21 0x08064e25 in mono_jit_runtime_invoke (method=0x82f809c, obj=0x0, params=0xbfa94a28, exc=0x0) at mini.c:4906 #22 0x0817c670 in mono_runtime_invoke (method=0x82f809c, obj=0x0, params=0xbfa94a28, exc=0x0) at object.c:2605 #23 0x0817ff02 in mono_runtime_exec_main (method=0x82f809c, args=0x4dfc0, exc=0x0) at object.c:3703 #24 0x0818027d in mono_runtime_run_main (method=0x82f809c, argc=1, argv=0xbfa94c88, exc=0x0) at object.c:3326 #25 0x080b67ec in mono_main (argc=2, argv=0xbfa94c84) at driver.c:997 #26 0x0805b9c1 in main (argc=0, argv=0x0) at main.c:34 #0 0xffffe430 in __kernel_vsyscall () ================================================================= 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. ================================================================= -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
