[Mono-bugs] [Bug 81856][Nor] Changed - Dead Lock with mysql

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Mon Jul 16 12:03:27 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 lupus at ximian.com.

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

--- shadow/81856	2007-07-16 11:08:13.000000000 -0400
+++ shadow/81856.tmp.8437	2007-07-16 12:03:27.000000000 -0400
@@ -288,6 +288,44 @@
 
 			} catch (Exception e) {
 				Console.WriteLine(e.Message);
 			}
 			Console.WriteLine("Exiting");
 		}
+
+------- Additional Comments From lupus at ximian.com  2007-07-16 12:03 -------
+The new test case just confirms the same pattern: it produces 4
+threads with the following manually decoded traces at the time of the
+deadlock:
+
+thread1: (main thread)
+mono_domain_lock ()
+mono_jit_find_compiled_method ()
+mono_create_jump_trampoline ()
+mono_ldftn()
+
+thread2: (started thread)
+mono_domain_lock()
+mono_jit_info_table_find ()
+sigusr1_signal_handler ()
+
+thread3: (finalizer thread)
+timedwait_signal_poll_cond ()
+_wapi_handle_timedwait_signal_handle ()
+_wapi_handle_wait_signal_handle ()
+WaitForSingleObjectEx ()
+
+thread4: (io-layer thread)
+start_thread()
+
+There should be no deadlock with just the above calls, since one
+thread should block while the other takes the domain lock and proceeeds.
+The fact that both blocked may mean that a thread has been aborted
+with the domain lock held: which looks like this:
+lock = {depth = 0, mutex = {__data = {__lock = 2, __count = 0, __owner
+= 0, __kind = 1, 
+        __nusers = 0, {__spins = 0, __list = {__next = 0x0}}}, 
+      __size = "\002", '\0' <repeats 11 times>,
+"\001\000\000\000\000\000\000\000\000\000\000", 
+      __align = 2}}
+
+


More information about the mono-bugs mailing list