Bugzilla – Bug 318101
Runtime aborts in call to Assembly.GetTypes()
Last modified: 2007-09-15 21:24:46 UTC
---- Reported by mwickline@maad.com 2005-05-27 19:40:22 MST ---- Please fill in this template when reporting a bug, unless you know what you are doing. Description of Problem: At some point a call to System.Reflection.Assembly.GetTypes() causes the mono runtime (both v1.1.7 and v1.1.7.99.20050527) to abort. Running with the "--trace=M:Assembly:GetTypes" option produces this: . . . ENTER: System.Reflection.Assembly:GetTypes ()(this:0x825bb18[System.Reflection.Assembly IPME.exe], ) . . . . ENTER: (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)(this:0x825bb18[System.Reflection.Assembly IPME.exe], 0, ) . . . . LEAVE: (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)result=0x86dbe70 . . . LEAVE: System.Reflection.Assembly:GetTypes ()result=0x86dbe70 . . . ENTER: System.Reflection.Assembly:GetTypes ()(this:0x825be88[System.Reflection.Assembly IPME.exe], ) . . . . ENTER: (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)(this:0x825be88[System.Reflection.Assembly IPME.exe], 0, ) ** ERROR **: file class.c: line 2119 (mono_class_setup_parent): should not be reached aborting... Aborted Steps to reproduce the problem: 1. Not sure how to reproduce in a small test case. Actual Results: Expected Results: How often does this happen? Consistently at the same point during execution. Additional Information: ---- Additional Comments From vargaz@gmail.com 2005-05-27 19:48:47 MST ---- We can't fix this without some kind of test case. ---- Additional Comments From mwickline@maad.com 2005-09-26 15:38:14 MST ---- Created an attachment (id=168030) Tar, Gzip directory with two test cases and relevant assemblies. ---- Additional Comments From mwickline@maad.com 2005-09-26 15:43:31 MST ---- Happens on mono 1.1.7 and 1.1.8 releases. The attached test case file contains a directory RuntimeAbort/, which contains two cases. Just type "make run1" and "make run2" to see the runtime abort in two different places during type lookup. Please do not make the assemblies "MAAD.Simulator.dll", "MAAD.Utilities.dll", or "IPME.Common.dll" publicly available. They are the property of Micro Analysis & Design, Inc. in Boulder, CO. Only the second test case relies on these files. ---- Additional Comments From vargaz@gmail.com 2005-09-26 17:40:58 MST ---- The testcase seems to be missing some assemblies, like IPME.Utilities and C1.Common. If the problem only shows when some assembly is missing, then this is a known bug, the mono runtime currently handles missing assemblies/types etc. very ungracefully by crashing/asserting. ---- Additional Comments From mwickline@maad.com 2005-09-26 18:12:23 MST ---- Yes, this is actually a critical problem for us. We need the runtime to simply fail in the lookup, rather than aborting/crashing when an assembly could not be loaded. There are some 3rd-party assemblies that Mono can't load (due to Nonstandard metadata heap), which are the root of the problem of assemblies not being found. Is there a way of quickly fixing this so that it is slightly more graceful? Or is this a difficult thing to do with the Mono runtime code structure? ---- Additional Comments From vargaz@gmail.com 2005-09-30 10:10:59 MST ---- It is quite difficult, thats why it isn't fixed yet. ---- Additional Comments From vargaz@gmail.com 2005-11-10 07:56:45 MST ---- -> moving to a more generic bug. *** This bug has been marked as a duplicate of https://bugzilla.novell.com/show_bug.cgi?id=MONO76661 *** Imported an attachment (id=168030) Unknown bug field "cf_op_sys_details" encountered while moving bug <cf_op_sys_details>Mandrake 9.0</cf_op_sys_details> Unknown bug field "cf_version_details" encountered while moving bug <cf_version_details>1.1.8</cf_version_details> This bug was marked DUPLICATE in the database it was moved from. Changing resolution to "MOVED"