[Mono-bugs] [Bug 522894] New: Mono based applications crash on XEN guests with kernel 2.6.24-19-xen thru 2.6.24-23-xen

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Jul 17 00:40:36 EDT 2009


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


           Summary: Mono based applications crash on XEN guests with
                    kernel 2.6.24-19-xen thru 2.6.24-23-xen
    Classification: Mono
           Product: Mono: Runtime
           Version: 2.4.x
          Platform: x86-64
        OS/Version: Ubuntu
            Status: NEW
          Severity: Critical
          Priority: P5 - None
         Component: JIT
        AssignedTo: lupus at novell.com
        ReportedBy: banderso at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Community User


Description of Problem:
Two of the more prominent Cloud server providers Rackspace Cloud and Amazon use
64 bit XEN guests based on a 2.6.24-23 kernel.  All mono apps crash with the
attached stacktrace.  Rackspace only supports 64 bit XEN guests so it's
impossible to run Mono apps in the Rackspace Cloud.

The Cockpit project is using Mono ASP.NET MVC at the web tier and is deploying
in Rackspace so we're blocked on this issue.  I have spoken with Rackspace and
they are never planning to offer 32 bit servers.

Steps to reproduce the problem:
1. Provision a 64 bit Host in Rackspace Cloud
2. Build and install Mono version 2.4x
3. Attempt to run a Mono app  ex. wsdl2


Actual Results:
Same deal here with 2.6.24-19-xen on AMD64 - No mono applications work, f-spot
example below.

# f-spot
TYPE: 1
**
** ERROR:(mini-amd64.c:192):amd64_patch: assertion failed: (amd64_is_imm32
(disp))
Stacktrace:

Native stacktrace:

        f-spot [0x51bb67]
        /lib/libpthread.so.0 [0x7f39dde0e7d0]
        /lib/libc.so.6(gsignal+0x35) [0x7f39dd84f095]
        /lib/libc.so.6(abort+0x110) [0x7f39dd850af0]
        /usr/lib/libglib-2.0.so.0(g_assertion_message+0x117) [0x7f39de279bc7]
        /usr/lib/libglib-2.0.so.0 [0x7f39de27a062]
        f-spot [0x42dbb8]
        f-spot [0x4e6229]
        f-spot [0x50849b]
        f-spot [0x508cd9]
        f-spot [0x5091d3]
        f-spot(mono_exception_from_name_two_strings+0xdd) [0x48c38d]
        f-spot(mono_runtime_init+0x13e) [0x48e64e]
        f-spot [0x4e31e5]
        f-spot(mono_main+0x341) [0x4169b1]
        /lib/libc.so.6(__libc_start_main+0xf4) [0x7f39dd83b1c4]
        f-spot(realloc+0x381) [0x416109]
Expected Results:
Mono based applications should execute on 64 bit XEN guests based on
2.6.24-23-xen kernel.

How often does this happen? 
every time

Additional Information:
There is a mono patch floating around on the Ubuntu forum.  I applied the patch
and rebuilt Mono but the problem still existed.

Other stack dumps on the Ubuntu forums
Impact: The 64bit XEN kernel does not honour the MAP_32BIT flag. This reason
for this is a change that removed the arch_get_unmapped_area_topdown() function
from the code (probably to resolve a defined twice error)

Fix: attached patch to restore the architecture specific function and to define
ARCH_HAVE_UNMAPPED_AREA_TOPDOWN

Testcase: running mono applications on 64bit XEN kernels.

Binary package hint: linux-image-2.6.24-18-xen

Description:    Ubuntu 8.04
Release:    8.04
linux-image-2.6.24-18-xen:
  Installed: 2.6.24-18.32

Mono applications exit with the following error:
TYPE: 1
**
** ERROR:(mini-amd64.c:192):amd64_patch: assertion failed: (amd64_is_imm32
(disp))

Further investigation indicates that linux-image-2.6.24-18-xen does not obey to
the MAP_32BIT flag. Here a relevant portion of the strace of a failing mono app
(f-spot):
mmap(NULL, 2113464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1f62f000
mmap(NULL, 2132968, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1f426000
mmap(NULL, 2881032, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1f166000
mmap(NULL, 2109728, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1ef62000
mmap(NULL, 2208624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1ed46000
mmap(NULL, 2621672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1eac5000
mmap(NULL, 3543672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1e763000
mmap(NULL, 2209176, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1e547000
mmap(NULL, 2249472, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1e321000
mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS|0x40, -1, 0) = 0x7f0c1f903000
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
mmap(NULL, 16384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x7f0c1f8cf000
mmap(NULL, 2131184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1df1e000
mmap(NULL, 2198224, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1dd05000
mmap(NULL, 2139352, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1dafa000
mmap(NULL, 2143528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) =
0x7f0c1d8ee000
mmap(NULL, 65536, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS|0x40, -1, 0) = 0x7f0c1f8af000

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