[Mono-bugs] [Bug 75586][Maj] Changed - The web domain is locking up in the loading of assemblies

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Jul 19 15:18: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 bmaurer at users.sf.net.

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

--- shadow/75586	2005-07-19 14:24:09.000000000 -0400
+++ shadow/75586.tmp.29270	2005-07-19 15:18:52.000000000 -0400
@@ -34,6 +34,68 @@
 ------- Additional Comments From smsmith at novell.com  2005-07-19 13:39 -------
 Sorry, didn't specify the server.  He is running an iFolder server.  
 Below are the details:
 
 iFolder server build: 20050712
 Mono Version: 1.1.7.7
+
+------- Additional Comments From bmaurer at users.sf.net  2005-07-19 15:18 -------
+The issue is between these two threads:
+
+#12 0x080f80a2 in EnterCriticalSection (section=0x81a4f64)
+    at critical-sections.c:151
+#13 0x080f80a2 in EnterCriticalSection (section=0x81a4f60)
+    at critical-sections.c:151
+#14 0x08096ed8 in mono_assembly_addref (assembly=0x4651c518) at
+assembly.c:383
+#15 0x080d19d9 in add_assemblies_to_domain (domain=0x81fc6c0, ass=0x224d, 
+    ht=0x400beeae) at appdomain.c:542
+#16 0x080d1a89 in mono_domain_fire_assembly_load (assembly=0x4651c518, 
+    user_data=0x0) at appdomain.c:576
+#17 0x0809754d in mono_assembly_invoke_load_hook (ass=0x4651c518)
+    at assembly.c:573
+#18 0x08097f9a in mono_assembly_load_from_full (image=0x4651b9e8, 
+    fname=0xfffffffc <Address 0xfffffffc out of bounds>,
+status=0x425e8164, 
+    refonly=0) at assembly.c:1018
+#19 0x08097cda in mono_assembly_open_full (
+    filename=0x4651b788
+"/opt/novell/ifolder3/web/bin/SyncService.Web.dll", 
+    status=0x425e8164, refonly=0) at assembly.c:887
+#20 0x080d247d in ves_icall_System_Reflection_Assembly_LoadFrom (
+    fname=0x8e0ab60, refOnly=0 '\0') at appdomain.c:899
+
+
+---
+
+#12 0x080f80a2 in EnterCriticalSection (section=0x81fc764)
+    at critical-sections.c:151
+#13 0x080f80a2 in EnterCriticalSection (section=0x81fc760)
+    at critical-sections.c:151
+#14 0x080d23ce in mono_domain_assembly_search (aname=0x44124bc8,
+user_data=0x0)
+    at appdomain.c:867
+#15 0x0809760d in mono_assembly_invoke_search_hook (aname=0x44124bc8)
+    at assembly.c:607
+#16 0x08096ba8 in search_loaded (aname=0x44124bc8, refonly=0) at
+assembly.c:243
+#17 0x08097ff2 in mono_assembly_load_from_full (image=0x4397af58, 
+    fname=0xfffffffc <Address 0xfffffffc out of bounds>,
+status=0x423e6164, 
+    refonly=0) at assembly.c:970
+#18 0x08097cda in mono_assembly_open_full (
+    filename=0x4411f920
+"/opt/novell/ifolder3/web/bin/Simias.POBox.Web.dll", 
+    status=0x423e6164, refonly=0) at assembly.c:887
+#19 0x080d247d in ves_icall_System_Reflection_Assembly_LoadFrom (
+    fname=0x8e0a2a0, refOnly=0 '\0') at appdomain.c:899
+
+In the first thread, mono_assembly_load_from_full does not hold any
+locks when it calls mono_assembly_invoke_load_hook. This will call
+mono_domain_fire_assembly_load which calls add_assemblies_to_domain 
+under mono_domain_assemblies_lock. When this calls
+mono_assembly_addref, it increments a refcount inside assemblies_mutex.
+
+mono_assembly_load_from_full (in the second thread) holds the
+assemblies_mutex lock when it calls search_loaded. This calls
+mono_domain_assembly_search which will acquire
+mono_domain_assemblies_lock.


More information about the mono-bugs mailing list