[Mono-bugs] [Bug 324945] using assembly load/resolve hooks can lead to runtime crashes/hangs

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Feb 3 13:54:14 EST 2009


https://bugzilla.novell.com/show_bug.cgi?id=324945

User jaebird at gmail.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=324945#c7


Jae Stutzman <jaebird at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jaebird at gmail.com




--- Comment #7 from Jae Stutzman <jaebird at gmail.com>  2009-02-03 11:54:13 MST ---
We have two threads running simultaneously in our app at startup. The first
"Kernel" is doing a sequential lookup for a particular type using a homegrown
type loader. The second is the UI thread using Mono.Addins to load types. You
can see from the stacktrace that it appears that
System.Reflection.MonoCMethod.InternalInvoke and
System.Reflection.Assembly.GetTypes are in deadlock.

Stacktrace of similar issue:

"Main Thread / UI" tid=0x0xb7d066d0 this=0x0x3eed8:
  at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke
(object,object[],System.Exception&) <0x00004>
  at (wrapper managed-to-native) System.Reflection.MonoCMethod.InternalInvoke
(object,object[],System.Exception&) <0xffffffff>
  at System.Reflection.MonoCMethod.Invoke
(object,System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
[0x000a6] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System.Reflection/MonoMethod.cs:434
  at System.Reflection.MonoCMethod.Invoke
(System.Reflection.BindingFlags,System.Reflection.Binder,object[],System.Globalization.CultureInfo)
[0x00000] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System.Reflection/MonoMethod.cs:449
  at System.Reflection.ConstructorInfo.Invoke (object[]) [0x0000e] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System.Reflection/ConstructorInfo.cs:77
  at System.Activator.CreateInstance (System.Type,bool) [0x00083] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System/Activator.cs:323
  at System.Activator.CreateInstance (System.Type) [0x00000] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System/Activator.cs:213
  at Mono.Addins.TypeExtensionNode.CreateInstance () [0x00000] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/TypeExtensionNode.cs:54
  at Mono.Addins.InstanceExtensionNode.GetInstance () [0x0000b] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/InstanceExtensionNode.cs:49
  at Mono.Addins.InstanceExtensionNode.GetInstance (System.Type) [0x00000] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/InstanceExtensionNode.cs:40
  at Mono.Addins.ExtensionNode.GetChildObjects (System.Type,bool) [0x00058] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/ExtensionNode.cs:190
  at Mono.Addins.ExtensionContext.GetExtensionObjects (string,System.Type,bool)
[0x0001f] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/ExtensionContext.cs:279
  at Mono.Addins.ExtensionContext.GetExtensionObjects (string,System.Type)
[0x00000] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/ExtensionContext.cs:271
  at Mono.Addins.AddinManager.GetExtensionObjects (string,System.Type)
[0x00005] in
/home/user/Dev/branches/dev/App/External/Mono/Addins/Mono.Addins/AddinManager.cs:248
<snip>.....

"Kernel" tid=0x0xb6c2fb90 this=0x0x3e000:
  at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes (bool)
<0x00004>
  at (wrapper managed-to-native) System.Reflection.Assembly.GetTypes (bool)
<0xffffffff>
  at System.Reflection.Assembly.GetTypes () [0x00000] in
/home/user/mono2.2/mono-2.2/mcs/class/corlib/System.Reflection/Assembly.cs:348
<snip>....
main.cs:232
  at (wrapper runtime-invoke) object.runtime_invoke_void__this__
(object,intptr,intptr,intptr) <0xffffffff>

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list