[Mono-bugs] [Bug 567145] New: SGen on OSX/x86 TLS seems to cause a crash.

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Dec 23 23:35:30 EST 2009



           Summary: SGen on OSX/x86 TLS seems to cause a crash.
    Classification: Mono
           Product: Mono: Runtime
           Version: unspecified
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: GC
        AssignedTo: lupus at novell.com
        ReportedBy: miguel at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

I know that we currently do not support SGen on OSX, but just for information
on where it currently fails:

While building gacutil.exe in the basic profile:

It crashes inside the wrapper object:Alloc method while JITing the .cctor for
the c# compiler, this seems to be an issue related to TLS storage:

(gdb) run -v ./../../mcs/gmcs.exe /codepage:65001 -r:Mono.Security.dll 
-optimize -d:NET_1_1 -d:NET_2_0 -d:BOOTSTRAP_BASIC -target:exe -out:gacutil.exe
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /cvs/sgen/mono/mono/mini/mono -v ./../../mcs/gmcs.exe
/codepage:65001 -r:Mono.Security.dll  -optimize -d:NET_1_1 -d:NET_2_0
-d:BOOTSTRAP_BASIC -target:exe -out:gacutil.exe   @gacutil.exe.sources
converting method System.OutOfMemoryException:.ctor (string)
Method System.OutOfMemoryException:.ctor (string) emitted at 0x46c030 to
0x46c053 (code length 35) [gmcs.exe]
converting method (wrapper runtime-invoke)
object:runtime_invoke_void__this___object (object,intptr,intptr,intptr)
Method (wrapper runtime-invoke) object:runtime_invoke_void__this___object
(object,intptr,intptr,intptr) emitted at 0x46c070 to 0x46c108 (code length 152)
converting method System.SystemException:.ctor (string)
Method System.SystemException:.ctor (string) emitted at 0x46c118 to 0x46c13b
(code length 35) [gmcs.exe]
converting method System.Exception:.ctor (string)
Method System.Exception:.ctor (string) emitted at 0x46c148 to 0x46c171 (code
length 41) [gmcs.exe]
converting method (wrapper write-barrier) object:wbarrier (intptr)
Method (wrapper write-barrier) object:wbarrier (intptr) emitted at 0x46c180 to
0x46c236 (code length 182) [gmcs.exe]
converting method System.NullReferenceException:.ctor (string)
Method System.NullReferenceException:.ctor (string) emitted at 0x46c238 to
0x46c25b (code length 35) [gmcs.exe]
converting method System.StackOverflowException:.ctor (string)
Method System.StackOverflowException:.ctor (string) emitted at 0x46c260 to
0x46c279 (code length 25) [gmcs.exe]
converting method Mono.CSharp.Driver:Main (string[])
Method Mono.CSharp.Driver:Main (string[]) emitted at 0x46c280 to 0x46c470 (code
length 496) [gmcs.exe]
converting method Mono.CSharp.Driver:.cctor ()
Method Mono.CSharp.Driver:.cctor () emitted at 0x46c528 to 0x46c580 (code
length 88) [gmcs.exe]
converting method (wrapper runtime-invoke) object:runtime_invoke_void
Method (wrapper runtime-invoke) object:runtime_invoke_void
(object,intptr,intptr,intptr) emitted at 0x46c590 to 0x46c619 (code length 137)
converting method (wrapper alloc) object:Alloc (intptr,intptr)
Method (wrapper alloc) object:Alloc (intptr,intptr) emitted at 0x46c628 to
0x46c6f9 (code length 209) [gmcs.exe]

Program received signal SIGBUS, Bus error.
0x0046c695 in ?? ()
(gdb) where
#0  0x0046c695 in ?? ()
#1  0x0046c542 in ?? ()
#2  0x0046c5cb in ?? ()
#3  0x0000d5ce in mono_jit_runtime_invoke (method=0x180201c, obj=0x0,
params=0x0, exc=0xbfffef9c) at mini.c:4787
#4  0x001bab31 in mono_runtime_invoke (method=0x180201c, obj=0x0, params=0x0,
exc=0xbfffef9c) at object.c:2605
#5  0x001b5690 in mono_runtime_class_init_full (vtable=0x81ce54,
raise_exception=1) at object.c:350
#6  0x001b4f57 in mono_runtime_class_init (vtable=0x81ce54) at object.c:237
#7  0x0000c7bd in mono_jit_compile_method_inner (method=0x180081c,
target_domain=0x5064e0, opt=59861503, jit_ex=0xbffff14c) at mini.c:4387
#8  0x0000c9dc in mono_jit_compile_method_with_opt (method=0x180081c,
opt=59861503, ex=0xbffff14c) at mini.c:4434
#9  0x0000d371 in mono_jit_runtime_invoke (method=0x180081c, obj=0x0,
params=0xbffff1f8, exc=0x0) at mini.c:4632
#10 0x001bab31 in mono_runtime_invoke (method=0x180081c, obj=0x0,
params=0xbffff1f8, exc=0x0) at object.c:2605
#11 0x001bcdeb in mono_runtime_exec_main (method=0x180081c, args=0x600558,
exc=0x0) at object.c:3694
#12 0x001bc0be in mono_runtime_run_main (method=0x180081c, argc=9,
argv=0xbffff454, exc=0x0) at object.c:3325
#13 0x00090600 in mono_jit_exec (domain=0x5064e0, assembly=0x1700740, argc=10,
argv=0xbffff450) at driver.c:938
#14 0x00090837 in main_thread_handler (user_data=0xbffff350) at driver.c:997
#15 0x0009273e in mono_main (argc=12, argv=0xbffff448) at driver.c:1742
#16 0x00002063 in main (argc=12, argv=0xbffff448) at main.c:34

(gdb) x/20i $pc-12
0x46c689:    mov    %gs:0x102,%eax
0x46c690:    add    $0x20,%eax
PC **
0x46c695:    mov    (%eax),%ecx

So the %gs:0x102 has a zero stored there.

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