Bugzilla – Bug 322086
[GMCS] runtime crashes on trivial generic code generated by CSC
Last modified: 2007-10-25 20:06:50 UTC
---- Reported by jan.oravec@6com.sk 2006-09-12 10:25:17 MST ---- When the attached a.cs is compiled with CSC 8.00.50727.42, framework 2.0.50727 into (also attached) a.dll, then both of this fails: 1) gmcs b.cs -r:a.dll Fails with: ================================================================= 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. ================================================================= Stacktrace: at (wrapper managed-to-native) System.Reflection.Assembly.InternalGetType (System.Reflection.Module,string,bool,bool) <0x0000e> at (wrapper managed-to-native) System.Reflection.Assembly.InternalGetType (System.Reflection.Module,string,bool,bool) <0xffffffff> at System.Reflection.Assembly.GetType (string,bool,bool) <0x0003f> at System.Reflection.Assembly.GetType (string) <0x00027> at Mono.CSharp.RootNamespace.GetTypeInAssembly (System.Reflection.Assembly,string) <0x00030> at Mono.CSharp.GlobalRootNamespace.LookupTypeReflection (string,Mono.CSharp.Location) <0x00098> at Mono.CSharp.Namespace.LookupType (string,Mono.CSharp.Location) <0x00186> at Mono.CSharp.Namespace.Lookup (Mono.CSharp.DeclSpace,string,Mono.CSharp.Location) <0x0009f> at Mono.CSharp.NamespaceEntry.Lookup (Mono.CSharp.DeclSpace,string,Mono.CSharp.Location,bool) <0x00087> at Mono.CSharp.NamespaceEntry.LookupNamespaceOrType (Mono.CSharp.DeclSpace,string,Mono.CSharp.Location,bool) <0x00065> at Mono.CSharp.DeclSpace.LookupType (string,Mono.CSharp.Location,bool) <0x00140> at Mono.CSharp.DeclSpace.LookupType (string,Mono.CSharp.Location,bool) <0x00105> at Mono.CSharp.SimpleName.ResolveAsTypeStep (Mono.CSharp.IResolveContext,bool) <0x00134> at Mono.CSharp.Expression.ResolveAsBaseTerminal (Mono.CSharp.IResolveContext,bool) <0x0004d> at Mono.CSharp.Expression.ResolveAsTypeTerminal (Mono.CSharp.IResolveContext,bool) <0x00044> at Mono.CSharp.LocalInfo.Resolve (Mono.CSharp.EmitContext) <0x0003b> at Mono.CSharp.Block.ResolveMeta (Mono.CSharp.ToplevelBlock,Mono.CSharp.EmitContext,Mono.CSharp.Parameters) <0x002a5> at Mono.CSharp.ToplevelBlock.ResolveMeta (Mono.CSharp.EmitContext,Mono.CSharp.Parameters) <0x00062> at Mono.CSharp.EmitContext.ResolveTopBlock (Mono.CSharp.EmitContext,Mono.CSharp.ToplevelBlock,Mono.CSharp.Parameters,Mono.CSharp.IMethodData,bool&) <0x00155> 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 () <0x003c2> at Mono.CSharp.RootContext.EmitCode () <0x002b3> at Mono.CSharp.Driver.MainDriver (string[]) <0x00eed> at Mono.CSharp.Driver.Main (string[]) <0x00079> at (wrapper runtime-invoke) System.Object.runtime_invoke_int_string[] (object,intptr,intptr,intptr) <0xffffffff> Native stacktrace: /home/shared/mono//bin/mono(mono_handle_native_sigsegv+0xe4) [0x51dee4] /home/shared/mono//bin/mono [0x5085b1] /lib/libpthread.so.0 [0x2b255eff8e80] /home/shared/mono//bin/mono [0x4b8479] /home/shared/mono//bin/mono(mono_class_get_full+0xe7) [0x4b4b17] /home/shared/mono//bin/mono(mono_metadata_load_generic_param_constraints+0x13b) [0x45df2b] /home/shared/mono//bin/mono [0x4b51a7] /home/shared/mono//bin/mono(mono_class_get_full+0xad) [0x4b4add] /home/shared/mono//bin/mono [0x45a645] /home/shared/mono//bin/mono(mono_metadata_parse_type_full+0x144) [0x45aa64] /home/shared/mono//bin/mono [0x45a6c1] /home/shared/mono//bin/mono(mono_type_create_from_typespec+0xde) [0x45d1ae] /home/shared/mono//bin/mono(mono_class_get_full+0xbf) [0x4b4aef] /home/shared/mono//bin/mono [0x45bbd9] /home/shared/mono//bin/mono [0x4b5277] /home/shared/mono//bin/mono(mono_class_get_full+0xad) [0x4b4add] /home/shared/mono//bin/mono [0x45a645] /home/shared/mono//bin/mono(mono_metadata_parse_type_full+0x144) [0x45aa64] /home/shared/mono//bin/mono [0x45a6c1] /home/shared/mono//bin/mono(mono_type_create_from_typespec+0xde) [0x45d1ae] /home/shared/mono//bin/mono(mono_class_get_full+0xbf) [0x4b4aef] /home/shared/mono//bin/mono [0x45bbd9] /home/shared/mono//bin/mono [0x4b5277] /home/shared/mono//bin/mono(mono_class_get_full+0xad) [0x4b4add] /home/shared/mono//bin/mono(mono_class_from_name+0xf1) [0x4b4321] /home/shared/mono//bin/mono [0x48b69e] /home/shared/mono//bin/mono(mono_reflection_get_type+0x30) [0x48b7b0] /home/shared/mono//bin/mono [0x4a42f4] [0x4029a3be] 2) Compile also b.cs into (attached) b.exe, and: mono b.exe Fails with: ================================================================= 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. ================================================================= Stacktrace: Native stacktrace: mono(mono_handle_native_sigsegv+0xe4) [0x51dee4] mono [0x5085b1] /lib/libpthread.so.0 [0x2b1b2456ae80] mono [0x4b8479] mono(mono_class_get_full+0xe7) [0x4b4b17] mono(mono_metadata_load_generic_param_constraints+0x13b) [0x45df2b] mono [0x4b51a7] mono(mono_class_get_full+0xad) [0x4b4add] mono [0x45a645] mono(mono_metadata_parse_type_full+0x144) [0x45aa64] mono [0x45a6c1] mono(mono_type_create_from_typespec+0xde) [0x45d1ae] mono(mono_class_get_full+0xbf) [0x4b4aef] mono [0x45bbd9] mono [0x4b5277] mono(mono_class_get_full+0xad) [0x4b4add] mono [0x45a645] mono(mono_metadata_parse_type_full+0x144) [0x45aa64] mono [0x45a6c1] mono(mono_type_create_from_typespec+0xde) [0x45d1ae] mono(mono_class_get_full+0xbf) [0x4b4aef] mono [0x45bbd9] mono [0x4b5277] mono(mono_class_get_full+0xad) [0x4b4add] mono(mono_class_from_name+0xf1) [0x4b4321] mono(mono_class_from_typeref+0xd9) [0x4b47f9] mono(mono_class_get_full+0x82) [0x4b4ab2] mono [0x45a645] mono(mono_metadata_parse_type_full+0x144) [0x45aa64] mono [0x45a6c1] mono(mono_metadata_parse_type_full+0x144) [0x45aa64] mono(mono_metadata_parse_mh_full+0x167) [0x45b3b7] mono(mono_method_get_header+0xe7) [0x497da7] mono [0x5063c7] mono [0x507df7] mono [0x50842d] mono(mono_runtime_exec_main+0x62) [0x49af92] mono(mono_runtime_run_main+0x1fb) [0x49b2bb] mono(mono_main+0xe12) [0x419eb2] /lib/libc.so.6(__libc_start_main+0xf6) [0x2b1b247ea136] mono(fmod+0x82) [0x418b6a] Aborted The code works fine when both a.cs and b.cs are compiled with gmcs. I have tested it with SVN revision 65185. ---- Additional Comments From jan.oravec@6com.sk 2006-09-12 10:26:23 MST ---- Created an attachment (id=170454) a.cs ---- Additional Comments From jan.oravec@6com.sk 2006-09-12 10:26:49 MST ---- Created an attachment (id=170455) b.cs ---- Additional Comments From jan.oravec@6com.sk 2006-09-12 10:27:14 MST ---- Created an attachment (id=170456) a.dll ---- Additional Comments From jan.oravec@6com.sk 2006-09-12 10:27:35 MST ---- Created an attachment (id=170457) b.exe ---- Additional Comments From miguel@ximian.com 2007-01-01 16:54:55 MST ---- Assigning to Martin. ---- Additional Comments From juraj@hotfeet.ch 2007-04-04 14:36:34 MST ---- This works just fine with mono from svn. ---- Additional Comments From juraj@hotfeet.ch 2007-04-04 14:58:22 MST ---- Well, "just fine" was a slight exageration. - compiling both source files with gmcs and running the resulting binaries on mono works. - all binaries (csc and gmcs-generated) run on MS.NET - the csc-generated binaries segfault on Mono - monodis segfaults on both csc-generated binaries - monodis segfaults on the gmcs-generated binrary "a.ll"! I'll attach a zip-file containing all source files and all binaries (csc- and gmcs-generated) ---- Additional Comments From juraj@hotfeet.ch 2007-04-04 15:01:41 MST ---- Created an attachment (id=170458) zip-file containing all files (sources and binaries) ---- Additional Comments From massi@ximian.com 2007-08-17 10:49:41 MST ---- I cannot reproduce any of this on svn head (r84274). Imported an attachment (id=170454) Imported an attachment (id=170455) Imported an attachment (id=170456) Imported an attachment (id=170457) Imported an attachment (id=170458) Unknown operating system unknown. Setting to default OS "Other".
The test works with svn head r88154. This bug has been fixed long time ago.