Bug 323172 (MONO80483) - [amd64] Segfault when MCS is running
Summary: [amd64] Segfault when MCS is running
Status: RESOLVED NORESPONSE
Alias: MONO80483
Product: Mono: Runtime
Classification: Mono
Component: GC (show other bugs)
Version: 1.2
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Mono Bugs
QA Contact: Mono Bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-09 11:28 UTC by Max Kellermann
Modified: 2012-07-09 11:30 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wiest 2007-09-15 20:22:35 UTC


---- Reported by max@duempel.org 2007-01-09 04:28:58 MST ----

When I compile a big library part of the SunUO project
(http://www.sunuo.org/), Mono crashes with a segmentation fault. It looks
like the faulty code is in the GC.

I am using Mono 1.2.2.1-1 (Debian package) on AMD64.

max@rabbit:~/svn/sunuo$ make
mcs -define:MONO -debug -lib:build -target:library
-out:build/scripts/legacy.dll -lib:build -r:System.Web.dll
-r:System.Data.dll -r:                                                    
                                                                          
      log4net.dll -r:SunUO.exe -recurse:'scripts/legacy/*.cs'
scripts/legacy/Commands/Docs.cs(357,30): warning CS0612:
`Server.ScriptCompiler.Assemblies' is obsolete
scripts/legacy/Engines/BulkOrders/SmallBulkEntry.cs(76,25): warning CS0612:
`Server.Core.BaseDirectory' is obsolete
Stacktrace:

  at (wrapper managed-to-native)
System.Object.__icall_wrapper_mono_array_new_specific (intptr,int) <0x0000b>
  at (wrapper managed-to-native)
System.Object.__icall_wrapper_mono_array_new_specific (intptr,int) <0xffffffff>
  at System.Collections.ArrayList..ctor () <0x0001b>
  at Mono.CSharp.Convert.FindMostSpecificSource
(System.Collections.IList,Mono.CSharp.Expression,bool) <0x0007d>
  at Mono.CSharp.Convert.GetConversionOperator
(System.Type,Mono.CSharp.Expression,System.Type,bool) <0x0039f>
  at Mono.CSharp.Convert.UserDefinedConversion
(Mono.CSharp.EmitContext,Mono.CSharp.Expression,System.Type,Mono.CSharp.Location,bool
                                                                          
                                                          ) <0x0012c>
  at Mono.CSharp.Convert.ImplicitUserConversion
(Mono.CSharp.EmitContext,Mono.CSharp.Expression,System.Type,Mono.CSharp.Location)
<0                                                                        
                                                             x00036>
  at Mono.CSharp.Convert.ImplicitConversionExists
(Mono.CSharp.EmitContext,Mono.CSharp.Expression,System.Type) <0x00059>
  at Mono.CSharp.Invocation.IsApplicable
(Mono.CSharp.EmitContext,System.Collections.ArrayList,int,System.Reflection.MethodBase)
<0x                                                                       
                                                              0016d>
  at Mono.CSharp.Invocation.IsApplicable
(Mono.CSharp.EmitContext,Mono.CSharp.MethodGroupExpr,System.Collections.ArrayList,int,Syste
                                                                          
                                                         
m.Reflection.MethodBase&) <0x00036>
  at Mono.CSharp.Invocation.OverloadResolve
(Mono.CSharp.EmitContext,Mono.CSharp.MethodGroupExpr,System.Collections.ArrayList,bool,M
                                                                          
                                                         
ono.CSharp.Location) <0x0050a>
  at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.EmitContext) <0x00497>
  at Mono.CSharp.Expression.Resolve
(Mono.CSharp.EmitContext,Mono.CSharp.ResolveFlags) <0x001de>
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext) <0x00028>
  at Mono.CSharp.ExpressionStatement.ResolveStatement
(Mono.CSharp.EmitContext) <0x0002c>
  at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.EmitContext)
<0x00037>
  at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext) <0x00288>
  at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext) <0x00288>
  at Mono.CSharp.EmitContext.ResolveTopBlock
(Mono.CSharp.EmitContext,Mono.CSharp.ToplevelBlock,Mono.CSharp.Parameters,Mono.CSharp.I
                                                                          
                                                          MethodData,bool&)
<0x00284>
  at Mono.CSharp.EmitContext.EmitTopBlock
(Mono.CSharp.IMethodData,Mono.CSharp.ToplevelBlock) <0x00072>
  at Mono.CSharp.MethodData.Emit (Mono.CSharp.DeclSpace) <0x001c5>
  at Mono.CSharp.Method.Emit () <0x00021>
  at Mono.CSharp.TypeContainer.EmitType () <0x00306>
  at Mono.CSharp.RootContext.EmitCode () <0x002b3>
  at Mono.CSharp.Driver.MainDriver (string[]) <0x00daf>
  at Mono.CSharp.Driver.Main (string[]) <0x00064>
  at (wrapper runtime-invoke) System.Object.runtime_invoke_int_string[]
(object,intptr,intptr,intptr) <0xffffffff>

Native stacktrace:

        /usr/bin/mono [0x56b37b]
        /usr/bin/mono [0x54afc4]
        /usr/lib/debug/libpthread.so.0 [0x2ab8131f8410]
        /usr/bin/mono [0x511521]
        /usr/bin/mono [0x510c08]
        /usr/bin/mono [0x519901]
        /usr/bin/mono [0x5194f2]
        /usr/bin/mono [0x51a4f6]
        /usr/bin/mono [0x51a774]
        /usr/bin/mono [0x50ee2a]
        /usr/bin/mono [0x5183b3]
        /usr/bin/mono [0x515c36]
        /usr/bin/mono(mono_array_new_specific+0xdd) [0x4de2ff]
        [0x40018480]

Debug info from gdb:

(no debugging symbols found)
Using host libthread_db library "/usr/lib/debug/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 46970088198976 (LWP 10042)]
[New Thread 1075988832 (LWP 10044)]
[New Thread 1073822048 (LWP 10043)]
0x00002ab813545ad6 in __select_nocancel () from /usr/lib/debug/libc.so.6
  3 Thread 1073822048 (LWP 10043)  0x00002ab8131f7b15 in __nanosleep_nocancel
    () from /usr/lib/debug/libpthread.so.0
  2 Thread 1075988832 (LWP 10044)  0x00002ab8134b249f in *__GI___sigsuspend ()
   from /usr/lib/debug/libc.so.6
  1 Thread 46970088198976 (LWP 10042)  0x00002ab813545ad6 in __select_nocancel
    () from /usr/lib/debug/libc.so.6

Thread 3 (Thread 1073822048 (LWP 10043)):
#0  0x00002ab8131f7b15 in __nanosleep_nocancel ()
   from /usr/lib/debug/libpthread.so.0
#1  0x00000000004ffed2 in mono_once ()
#2  0x00002ab8131f1f1a in start_thread () from /usr/lib/debug/libpthread.so.0
#3  0x00002ab81354c612 in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 1075988832 (LWP 10044)):
#0  0x00002ab8134b249f in *__GI___sigsuspend () from /usr/lib/debug/libc.so.6
#1  0x000000000050d754 in mono_bitset_foreach ()
#2  0x000000000050d78e in mono_bitset_foreach ()
#3  <signal handler called>
#4  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:222
#5  0x00000000004f72d7 in mono_metadata_init ()
#6  0x00000000004f75e5 in mono_metadata_init ()
#7  0x00000000004f73cb in mono_metadata_init ()
#8  0x00000000004f39c2 in mono_metadata_init ()
#9  0x00000000004e2647 in mono_gc_is_finalizer_thread ()
#10 0x00000000004bf11c in mono_thread_get_abort_signal ()
#11 0x00000000004f884d in mono_metadata_init ()
#12 0x0000000000516c93 in GC_end_blocking ()
#13 0x00002ab8131f1f1a in start_thread () from /usr/lib/debug/libpthread.so.0
#14 0x00002ab81354c612 in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()

Thread 1 (Thread 46970088198976 (LWP 10042)):
#0  0x00002ab813545ad6 in __select_nocancel () from /usr/lib/debug/libc.so.6
#1  0x00002ab812f9a52d in g_spawn_sync () from /usr/lib/libglib-2.0.so.0
#2  0x00002ab812f9a8f8 in g_spawn_command_line_sync ()
   from /usr/lib/libglib-2.0.so.0
#3  0x000000000056b425 in mono_debugger_run_finally ()
#4  0x000000000054afc4 in mono_jit_thread_attach ()
#5  <signal handler called>
#6  0x0000000000511521 in mono_bitset_foreach ()
#7  0x0000000000510c08 in mono_bitset_foreach ()
#8  0x0000000000519901 in GC_end_blocking ()
#9  0x00000000005194f2 in GC_end_blocking ()
#10 0x000000000051a4f6 in GC_end_blocking ()
#11 0x000000000051a774 in GC_end_blocking ()
#12 0x000000000050ee2a in mono_bitset_foreach ()
#13 0x00000000005183b3 in GC_end_blocking ()
#14 0x0000000000515c36 in GC_push_all_stack ()
#15 0x00000000004de2ff in mono_array_new_specific ()
#16 0x0000000040018480 in ?? ()
#17 0x00002aaac4f8d668 in ?? ()
#18 0x00002aaac4f8d668 in ?? ()
#19 0x0000000000739880 in ?? ()
#20 0x00000000004db899 in mono_object_new_fast ()
#21 0x000000004001842b in ?? ()
#22 0x0000000000000000 in ?? ()
#0  0x00002ab813545ad6 in __select_nocancel () from /usr/lib/debug/libc.so.6


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

make: *** [build/scripts/legacy.dll] Aborted



---- Additional Comments From lupus@ximian.com 2007-01-09 08:22:33 MST ----

I downloaded version 0.4.3 and it built fine in my amd64 box with mono
from svn (built three times). Please try building with mono from svn
and provide more info about your system (is it an SMP box?).



---- Additional Comments From max@duempel.org 2007-01-09 08:26:29 MST ----

My machine is an AMD Athlon64 dualcore, running with Linux 2.6.19.1
(SMP enabled).

It segfaults "most of the time"; when I retry several times, chances
are good that compilation succeeds.




---- Additional Comments From lupus@ximian.com 2007-01-09 08:40:51 MST ----

Please try a mono build from svn so we can also get decent backtraces
with proper debugging symbols.


Unknown bug field "cf_op_sys_details" encountered while moving bug
   <cf_op_sys_details>Debian sid/amd64</cf_op_sys_details>
Unknown operating system unknown. Setting to default OS "Other".

Comment 1 Forgotten User vxPDddArjq 2008-06-11 22:50:26 UTC
-> NEEDINFO.