http://bugzilla.novell.com/show_bug.cgi?id=616463
http://bugzilla.novell.com/show_bug.cgi?id=616463#c0 Summary: SIGSEGV in common_call_trampoline (with test case) Classification: Mono Product: Mono: Compilers Version: SVN Platform: i686 OS/Version: Linux Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; da; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 ( .NET CLR 3.5.30729; .NET4.0E) I get a runtime crash (SIGSEGV) every time in common_call_trampoline/mono_magic_trampoline. It appears to have something to do with calling an overridden method in a generic class. Easy to reproduce with the test case. If I compile with gmcs from 2.6.4 it works with both mono from 2.6.4 and from trunk. If I compile with gmcs from trunk it crashes with both mono from 2.6.4 and from trunk. This makes me conclude that the error is in the compiler. Reproducible: Always Steps to Reproduce: -bash-4.0$ cat test.cs using System; public class Test { public static void Main () { var vtib = new VTI_C<int> (); var result = vtib.GRAF<int> (); if (result) { Console.WriteLine ("It works"); } } } public abstract class VTIB { public abstract bool GRAF<K>(); } public class VTI<T> : VTIB { public override bool GRAF<K>() { return true; } } public class VTI_C<T> : VTI<T> { } -bash-4.0$ gmcs test.cs && mono test.exe Actual Results: -bash-4.0$ gmcs test.cs && mono test.exe Stacktrace: at Test.Main () <0xffffffff> at Test.Main () <0x00027> at (wrapper runtime-invoke) object.runtime_invoke_void (object,intptr,intptr,intptr) <0x0002a> Native stacktrace: mono [0x80d2639] mono [0x811109b] [0xb7f3e440] mono [0x80d6539] mono [0x80d6c5a] [0xb7b5e066] [0xb60c6203] mono [0x80601d8] mono(mono_runtime_invoke+0x3e) [0x812a01e] mono(mono_runtime_exec_main+0xd6) [0x812d106] mono(mono_main+0x1911) [0x80b01b1] mono [0x8056bf5] /lib/i686/nosegneg/libc.so.6(__libc_start_main+0xe6) [0xb7d85a86] mono [0x8056b31] Debug info from gdb: Mono support loaded. [Thread debugging using libthread_db enabled] [New Thread 0xb5d0fb70 (LWP 10964)] [New Thread 0xb5d40b70 (LWP 10963)] [New Thread 0xb6b5bb70 (LWP 10962)] [New Thread 0xb735cb70 (LWP 10961)] [New Thread 0xb7b5db70 (LWP 10960)] 0xb7f3e402 in __kernel_vsyscall () 6 Thread 0xb7b5db70 (LWP 10960) 0xb7f3e402 in __kernel_vsyscall () 5 Thread 0xb735cb70 (LWP 10961) 0xb7f3e402 in __kernel_vsyscall () 4 Thread 0xb6b5bb70 (LWP 10962) 0xb7f3e402 in __kernel_vsyscall () 3 Thread 0xb5d40b70 (LWP 10963) 0xb7f3e402 in __kernel_vsyscall () 2 Thread 0xb5d0fb70 (LWP 10964) 0xb7f3e402 in __kernel_vsyscall () * 1 Thread 0xb7d6e6f0 (LWP 10959) 0xb7f3e402 in __kernel_vsyscall () Thread 6 (Thread 0xb7b5db70 (LWP 10960)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7eedfe5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/nosegneg/libpthread.so.0 #2 0x08204652 in GC_wait_marker () at pthread_support.c:1785 #3 0x082065b6 in GC_help_marker (my_mark_no=2) at mark.c:1116 #4 0x0820356e in GC_mark_thread (id=0x0) at pthread_support.c:548 #5 0xb7ee990c in start_thread () from /lib/i686/nosegneg/libpthread.so.0 #6 0xb7e4f56e in clone () from /lib/i686/nosegneg/libc.so.6 Thread 5 (Thread 0xb735cb70 (LWP 10961)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7eedfe5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/nosegneg/libpthread.so.0 #2 0x08204652 in GC_wait_marker () at pthread_support.c:1785 #3 0x082065b6 in GC_help_marker (my_mark_no=2) at mark.c:1116 #4 0x0820356e in GC_mark_thread (id=0x1) at pthread_support.c:548 #5 0xb7ee990c in start_thread () from /lib/i686/nosegneg/libpthread.so.0 #6 0xb7e4f56e in clone () from /lib/i686/nosegneg/libc.so.6 Thread 4 (Thread 0xb6b5bb70 (LWP 10962)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7eedfe5 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/nosegneg/libpthread.so.0 #2 0x08204652 in GC_wait_marker () at pthread_support.c:1785 #3 0x082065b6 in GC_help_marker (my_mark_no=2) at mark.c:1116 #4 0x0820356e in GC_mark_thread (id=0x2) at pthread_support.c:548 #5 0xb7ee990c in start_thread () from /lib/i686/nosegneg/libpthread.so.0 #6 0xb7e4f56e in clone () from /lib/i686/nosegneg/libc.so.6 Thread 3 (Thread 0xb5d40b70 (LWP 10963)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7ef1886 in nanosleep () from /lib/i686/nosegneg/libpthread.so.0 #2 0x081d0358 in collection_thread (unused=0x0) at collection.c:34 #3 0xb7ee990c in start_thread () from /lib/i686/nosegneg/libpthread.so.0 #4 0xb7e4f56e in clone () from /lib/i686/nosegneg/libc.so.6 Thread 2 (Thread 0xb5d0fb70 (LWP 10964)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7ef02d5 in sem_wait@@GLIBC_2.1 () from /lib/i686/nosegneg/libpthread.so.0 #2 0x081eb9d8 in mono_sem_wait (sem=0x83076a4, alertable=0) at mono-semaphore.c:102 #3 0x081202f0 in finalizer_thread (unused=0x0) at gc.c:1048 #4 0x0816bf35 in start_wrapper (data=0x8332208) at threads.c:747 #5 0x081e77cf in thread_start_routine (args=0x835f1e4) at wthreads.c:285 #6 0x082042ef in GC_start_routine (arg=0x4ffe0) at pthread_support.c:1390 #7 0xb7ee990c in start_thread () from /lib/i686/nosegneg/libpthread.so.0 #8 0xb7e4f56e in clone () from /lib/i686/nosegneg/libc.so.6 Thread 1 (Thread 0xb7d6e6f0 (LWP 10959)): #0 0xb7f3e402 in __kernel_vsyscall () #1 0xb7ef106b in read () from /lib/i686/nosegneg/libpthread.so.0 #2 0x080d27e5 in mono_handle_native_sigsegv (signal=11, ctx=0xb6358d0c) at mini-exceptions.c:1915 #3 0x0811109b in mono_arch_handle_altstack_exception (sigctx=0xb6358d0c, fault_addr=0x5c6, stack_ovf=0) at exceptions-x86.c:1062 #4 <signal handler called> #5 common_call_trampoline (regs=<value optimized out>, code=0xb60c61a7 "\203\304\20\205\300t\20\203\354\fh\340\37\5", arg=<value optimized out>, tramp= 0x0, vt=0x8328c44, vtable_slot=0x8328c78, need_rgctx_tramp=0) at mini-trampolines.c:402 #6 0x080d6c5a in mono_magic_trampoline (regs=0xbfb1b748, code=0xb60c61a7 "\203\304\20\205\300t\20\203\354\fh\340\37\5", arg=0xfffffffe, tramp=0x0) at mini-trampolines.c:611 #7 0xb7b5e066 in ?? () #8 0xbfb1b748 in ?? () #9 0xb60c61a7 in ?? () #10 0xfffffffe in ?? () #11 0x00000000 in ?? () ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Aborted Expected Results: -bash-4.0$ gmcs test.cs && mono test.exe It works (This is what is happening on MS.NET and if comiled with gmcs from mono 2.6.4) I am running Fedora 11 on a VPS running: [r...@dagobah Core]# uname -a Linux dagobah.scisoft.dk 2.6.18.8-linode22 #1 SMP Tue Nov 10 16:12:12 UTC 2009 i686 i686 i386 GNU/Linux -bash-4.0$ mono --version Mono JIT compiler version 2.7 (/trunk/mono r159049 Thu Jun 17 07:23:59 UTC 2010) Copyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com TLS: __thread GC: Included Boehm (with typed GC and Parallel Mark) SIGSEGV: altstack Notifications: epoll Architecture: x86 Disabled: none Misc: debugger softdebug LLVM supported -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug. You are the assignee for the bug. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
