[Mono-bugs] [Bug 75248][Wis] Changed - junk read by reflection for nested generic types

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Mon Jun 13 13:45:53 EDT 2005


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

--- shadow/75248	2005-06-13 07:27:27.000000000 -0400
+++ shadow/75248.tmp.22401	2005-06-13 13:45:53.000000000 -0400
@@ -1,14 +1,14 @@
 Bug#: 75248
 Product: Mono: Runtime
 Version: 1.1
-OS: 
+OS: unknown
 OS Details: amd 64 pld linux
 Status: NEW   
 Resolution: 
-Severity: 
+Severity: Unknown
 Priority: Wishlist
 Component: io-layer
 AssignedTo: mono-bugs at ximian.com                            
 ReportedBy: malekith at pld-linux.org               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
@@ -72,6 +72,38 @@
 I'm using svn trunk.
 
 ------- Additional Comments From malekith at pld-linux.org  2005-06-13 07:27 -------
 Created an attachment (id=15314)
 testcase
 
+
+------- Additional Comments From nazgul at omega.pl  2005-06-13 13:45 -------
+After a little debugging I found out that there is some serious data
+invariants violation in runtime. The bug occurs, because in 
+
+mono_metadata_lookup_generic_inst
+
+the incorrect cache value is returned:
+
+(gdb) p ginst->type_argv[0]->data.generic_param.name
+$4 = 0xb752a748 "'b"
+(gdb) p cached
+$5 = (MonoGenericInst *) 0x8274df8
+(gdb) p cached -> type_argv[0]->data.generic_param.name
+$6 = 0xb752a74d "aa"
+
+indeed their metadata used in hashtable compare are the same:
+
+(gdb) p cached -> type_argv[0]->data.generic_param.owner
+$7 = (MonoGenericContainer *) 0x8274850
+(gdb) p ginst->type_argv[0]->data.generic_param.owner
+$8 = (MonoGenericContainer *) 0x8274850
+
+but evidently the value already in cache have wrong generic context
+attached:
+
+(gdb) p cached -> type_argv[0]->data.generic_param.owner->klass->name
+$10 = 0xb752a708 "NemerleMap"
+(gdb) p cached -> type_argv[0]->data.generic_param.name
+$11 = 0xb752a74d "aa"
+
+I dunno where it gets such context...


More information about the mono-bugs mailing list