[Mono-bugs] [Bug 82625][Nor] New - Crash in System.MonoType.GetFields_internal

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Aug 29 10:23:36 EDT 2007


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by nazgul at omega.pl.

http://bugzilla.ximian.com/show_bug.cgi?id=82625

--- shadow/82625	2007-08-29 10:23:36.000000000 -0400
+++ shadow/82625.tmp.582	2007-08-29 10:23:36.000000000 -0400
@@ -0,0 +1,115 @@
+Bug#: 82625
+Product: Mono: Runtime
+Version: 1.2
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: misc
+AssignedTo: mono-bugs at ximian.com                            
+ReportedBy: nazgul at omega.pl               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Crash in System.MonoType.GetFields_internal
+
+Please fill in this template when reporting a bug, unless you know what you
+are doing.
+Description of Problem:
+During extensive use of System.Reflection.Emit API the method for fetching
+fields fails.
+
+Steps to reproduce the problem:
+1. Download Nemerle snapshot
+http://nemerle.org/download/snapshots/nemerle-0.9.3.99.7754.tar.gz
+2. Do  ./configure
+3. make
+
+Actual Results:
+make[3]: Entering directory `/home/users/nemweb/nemerle-0.9.3.99.7754/ncc'
+COMPILE [stage1] Nemerle.dll
+___________.................................................
+** ERROR **: file metadata.c: line 950 (mono_metadata_decode_row):
+assertion failed: (res_size == count)
+aborting...
+Stacktrace:
+
+  at (wrapper managed-to-native) System.MonoType.GetFields_internal
+(System.Reflection.BindingFlags,System.Type) <0x00004>
+  at (wrapper managed-to-native) System.MonoType.GetFields_internal
+(System.Reflection.BindingFlags,System.Type) <0xffffffff>
+  at System.MonoType.GetFields (System.Reflection.BindingFlags) <0x00010>
+  at System.Reflection.Emit.TypeBuilder.GetFields
+(System.Reflection.BindingFlags) <0x00024>
+  at System.Reflection.MonoGenericClass.initialize () <0x00080>
+  at System.Reflection.MonoGenericClass.GetField
+(System.Reflection.FieldInfo) <0x0000d>
+  at System.Reflection.Emit.TypeBuilder.GetField
+(System.Type,System.Reflection.FieldInfo) <0x00015>
+  at Nemerle.Compiler.ILEmitter.FrameworkGetField
+(System.Type,System.Reflection.FieldInfo) <0x000c3>
+  at Nemerle.Compiler.ILEmitter.GetFieldInfo
+(System.Type,Nemerle.Compiler.IField) <0x00040>
+  at Nemerle.Compiler.ILEmitter.GetFieldInfo
+(Nemerle.Compiler.Typedtree.TExpr,Nemerle.Compiler.IField) <0x00049>
+  at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
+<0x03dc8>
+  at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
+<0x028c2>
+  at Nemerle.Compiler.ILEmitter.emit_parms (Nemerle.Core.list`1) <0x00092>
+  at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
+<0x06ad4>
+  at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
+<0x0253e>
+  at Nemerle.Compiler.ILEmitter.emit (Nemerle.Compiler.Typedtree.TExpr)
+<0x028c2>
+  at Nemerle.Compiler.ILEmitter.Run () <0x00186>
+  at _N__N_l40953_41062.apply_void () <0x0009d>
+  at Nemerle.Compiler.TypeBuilder.FinalizeType () <0x000a6>
+  at Nemerle.Compiler.TypeBuilder.EmitImplementation () <0x0019e>
+  at _N_emit_impl_34328.apply_void (Nemerle.Compiler.TypeBuilder) <0x0004c>
+  at _N_maybe_f_34948.apply_void (Nemerle.Compiler.TypeBuilder) <0x001ed>
+  at Nemerle.Collections.List.Iter
+(Nemerle.Core.list`1,Nemerle.Builtins.FunctionVoid`1) <0x0008a>
+  at Nemerle.Core.list`1.Iter (Nemerle.Builtins.FunctionVoid`1) <0x0000d>
+  at Nemerle.Compiler.TypesManager.Iter
+(Nemerle.Core.list`1,Nemerle.Builtins.FunctionVoid`1) <0x0008a>
+  at Nemerle.Compiler.TypesManager.Iter (Nemerle.Builtins.FunctionVoid`1)
+<0x00026>
+  at Nemerle.Compiler.TypesManager.compile_all_tyinfos (bool) <0x001a1>
+  at _N__N_l33755_33853.apply_void () <0x0001b>
+  at Nemerle.Compiler.Solver.Enqueue (Nemerle.Builtins.FunctionVoid) <0x0003b>
+  at Nemerle.Compiler.TypesManager.EmitDecls () <0x0004f>
+  at Nemerle.Compiler.ManagerClass.Run () <0x0022f>
+  at Nemerle.CommandlineCompiler.MainClass.main_with_catching () <0x000e9>
+  at Nemerle.CommandlineCompiler.MainClass.Main () <0x0011b>
+  at (wrapper runtime-invoke)
+Nemerle.CommandlineCompiler.MainClass.runtime_invoke_void
+(object,intptr,intptr,intptr) <0xffffffff>
+
+Native stacktrace:
+
+        /usr/bin/mono [0x81681c0]
+        [0xffffe440]
+        /lib/tls/libc.so.6(abort+0x18c) [0x400fe75c]
+        /usr/lib/libglib-2.0.so.0 [0x40047c5d]
+        /usr/lib/libglib-2.0.so.0(g_log+0x26) [0x40047c86]
+        /usr/bin/mono(mono_metadata_decode_row+0x70) [0x80eff90]
+        /usr/bin/mono [0x80ffd68]
+        /usr/bin/mono [0x81002b5]
+        /usr/bin/mono(mono_class_get_fields+0x20) [0x81002e0]
+        /usr/bin/mono [0x80a27f2]
+
+
+Expected Results:
+Should compile cleanly
+
+How often does this happen? 
+Always
+
+Additional Information:
+It is a regression in 1.2.5 (or possible 1.2.4). In 1.2.3 it worked
+perfectly fine. It also compiles fine on MS.NET 2.0


More information about the mono-bugs mailing list