[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