[Mono-bugs] [Bug 647918] New: Mono 2.8 on openSUSE 11.3 crashes (all applications)

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Oct 19 22:56:58 EDT 2010


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

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


           Summary: Mono 2.8 on openSUSE 11.3 crashes (all applications)
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.8.x
          Platform: x86
        OS/Version: openSUSE 11.3
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: GC
        AssignedTo: lupus at novell.com
        ReportedBy: abockover at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


There appears to be a severe crasher in Mono 2.8 on openSUSE 11.3.

I am running a clean installation of openSUSE 11.3 and today updated my Mono
stack from the official/stable Mono download page
(http://www.go-mono.com/mono-downloads/download.html), following the
instructions for 11.3:

  zypper addrepo http://ftp.novell.com/pub/mono/download-stable/openSUSE_11.3
mono-stable
  zypper refresh --repo mono-stable
  zypper dist-upgrade --repo mono-stable

When the upgrade finished, all Mono software installed on the machine was
broken. This was further underscored by gmcs being broken with the same crash,
resulting in the inability to rebuild some Mono applications from source:

  Thread (nil) may have been prematurely finalized
  Thread (nil) may have been prematurely finalized
  Segmentation fault

Simply running the "gmcs" command will result in the crash. Simply running the
"mono" command will not (the runtime must be passed an assembly to load for the
crash to happen).

Tracing the problem I see that strcmp is passed a NULL string, and Mono crashes
there.

aaron at giggidy:~/src/banshee$ gdb /usr/bin/mono
GNU gdb (GDB) SUSE (7.1-3.12)
Mono support loaded.
(gdb) run /usr/lib/mono/2.0/gmcs.exe
Starting program: /usr/bin/mono /usr/lib/mono/2.0/gmcs.exe
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0xb7e5deea in strcmp () from /lib/libc.so.6
(gdb) t a a bt

Thread 2 (Thread 0xb7c7ab70 (LWP 684)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb7f5e125 in pthread_cond_wait@@GLIBC_2.3.2 () at
./nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:122
#2  0x08225df7 in GC_wait_marker () at pthread_support.c:1787
#3  0x0822a449 in GC_help_marker (my_mark_no=2) at mark.c:1116
#4  0x08224593 in GC_mark_thread (id=0x0) at pthread_support.c:548
#5  0xb7f59b25 in start_thread (arg=0xb7c7ab70) at pthread_create.c:297
#6  0xb7ebb46e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb7de76f0 (LWP 681)):
#0  0xb7e5deea in strcmp () from /lib/libc.so.6
#1  0x080cc382 in load_aot_module (assembly=0x8384a18, user_data=0x0) at
aot-runtime.c:1074
#2  0x08196375 in mono_assembly_invoke_load_hook (image=0x8384200,
fname=0x8383e78 "/usr/lib/mono/2.0/mscorlib.dll", status=0xbfffebcc, refonly=0)
at assembly.c:1003
#3  mono_assembly_load_from_full (image=0x8384200, fname=0x8383e78
"/usr/lib/mono/2.0/mscorlib.dll", status=0xbfffebcc, refonly=0) at
assembly.c:1605
#4  0x081967a1 in mono_assembly_open_full (filename=0x8383ea0
"/usr/lib/mono/2.0/mscorlib.dll", status=0xbfffebcc, refonly=0) at
assembly.c:1382
#5  0x081968a4 in load_in_path (basename=0x83841c8 "mono/2.0/mscorlib.dll",
search_path=<value optimized out>, status=0xbfffebcc, refonly=0 '\000') at
assembly.c:440
#6  0x08197add in mono_assembly_load_corlib (runtime=0x8251e88,
status=0xbfffebcc) at assembly.c:2587
#7  0x0813b7c3 in mono_init_internal (filename=0xbffff06d
"/usr/lib/mono/2.0/gmcs.exe", exe_filename=<value optimized out>,
runtime_version=<value optimized out>) at domain.c:1338
#8  0x08060ab0 in mini_init (filename=0xbffff06d "/usr/lib/mono/2.0/gmcs.exe",
runtime_version=0x0) at mini.c:5923
#9  0x080b96aa in mono_main (argc=2, argv=0xbfffee04) at driver.c:1727
#10 0x08059800 in mono_main_with_options (argc=2, argv=0xbfffee04) at main.c:66
#11 main (argc=2, argv=0xbfffee04) at main.c:97
(gdb) up
#1  0x080cc382 in load_aot_module (assembly=0x8384a18, user_data=0x0) at
aot-runtime.c:1074
1074            if (strcmp (current_gc_name, gc_name) != 0) {
(gdb) p current_gc_name
$1 = 0x82438e7 "boehm"
(gdb) p gc_name
$2 = 0x0

So, it seems "gc_name" is NULL inside of load_aot_module, causing the crash.

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