[Mono-bugs] [Bug 56599][Nor] Changed - mcs compile hangs

bugzilla-daemon@bugzilla.ximian.com bugzilla-daemon@bugzilla.ximian.com
Mon, 12 Apr 2004 00:52:44 -0400 (EDT)


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 joshhelmer@cox.net.

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

--- shadow/56599	2004-04-10 15:33:31.000000000 -0400
+++ shadow/56599.tmp.9540	2004-04-12 00:52:44.000000000 -0400
@@ -1,12 +1,12 @@
 Bug#: 56599
 Product: Mono: Compilers
 Version: unspecified
-OS: unknown
+OS: other
 OS Details: Gentoo Linux - 2.6.3-gentoo-r1 kernel with NTPL
-Status: NEEDINFO   
+Status: REOPENED   
 Resolution: 
 Severity: Unknown
 Priority: Normal
 Component: C#
 AssignedTo: mono-bugs@ximian.com                            
 ReportedBy: joshhelmer@cox.net               
@@ -102,6 +102,216 @@
 (gdb) p print_method_from_ip (0x2342342)
 
 Miguel
 
 ------- Additional Comments From miguel@ximian.com  2004-04-10 15:33 -------
 setting to needinfo, please reopen when you have the data
+
+------- Additional Comments From joshhelmer@cox.net  2004-04-12 00:52 -------
+I don't know how helpful this will be, but here is what I got: 
+ 
+(gdb) bt 
+#0  0xffffe410 in ?? () 
+#1  0xbfffc9f8 in ?? () 
+#2  0x000002b7 in ?? () 
+#3  0x00000000 in ?? () 
+#4  0x40bd3260 in pthread_cond_timedwait@@GLIBC_2.3.2 () 
+   from /lib/libpthread.so.0 
+#5  0x400ec72f in _wapi_handle_wait_signal_handle 
+(handle=0xfffffffc) 
+    at handles-private.h:87 
+#6  0x400f66fd in WaitForSingleObject (handle=0x8, 
+timeout=4294967295) 
+    at wait.c:95 
+#7  0x400f6c86 in WaitForMultipleObjects (numobjects=1, 
+handles=0x813ccb8, 
+    waitall=1, timeout=4294967295) at wait.c:325 
+#8  0x400bad72 in wait_for_tids (wait=0x813ccb8, timeout=4294967292) 
+    at threads.c:1097 
+#9  0x400baed3 in mono_thread_manage () at threads.c:1193 
+#10 0x4009a52e in mono_runtime_exec_managed_code (domain=0xfffffffc, 
+    main_func=0xfffffffc, main_args=0xfffffffc) at object.c:1314 
+#11 0x400740e3 in mono_main (argc=9, argv=0xbfffccb4) at 
+driver.c:788 
+#12 0x08048f5f in main (argc=-4, argv=0xfffffffc) at main.c:6 
+(gdb) info threads 
+  3 Thread 1095887792 (LWP 5248)  0xffffe410 in ?? () 
+  2 Thread 1104104368 (LWP 5250)  0xffffe410 in ?? () 
+  1 Thread 1088363600 (LWP 5235)  0xffffe410 in ?? () 
+(gdb) thread 2 
+[Switching to thread 2 (Thread 1104104368 (LWP 5250))]#0  0xffffe410 
+in ?? () 
+(gdb) bt 
+#0  0xffffe410 in ?? () 
+#1  0x41cf3f54 in ?? () 
+#2  0x00000002 in ?? () 
+#3  0x00000000 in ?? () 
+#4  0x40bd53ab in __lll_mutex_lock_wait () from /lib/libpthread.so.0 
+#5  0x40bd2717 in _L_mutex_lock_75 () from /lib/libpthread.so.0 
+#6  0x41cf3f44 in ?? () 
+#7  0x40bd28c4 in pthread_mutex_unlock () from /lib/libpthread.so.0 
+#8  0x400e7da1 in LeaveCriticalSection (section=0x4016a084) 
+    at critical-sections.c:158 
+#9  0x400e7d48 in EnterCriticalSection (section=0x4016a080) 
+    at critical-sections.c:140 
+#10 0x40051529 in mono_create_jump_trampoline (domain=0x40bd53ab, 
+    method=0x8196838, add_sync_wrapper=1) at mini.c:6284 
+#11 0x4003b872 in mono_ldftn (method=0x40bd9a48) at jit-icalls.c:20 
+#12 0x41316024 in ?? () 
+#13 0x08196838 in ?? () 
+#14 0x41cf4608 in ?? () 
+#15 0x0813c7d8 in ?? () 
+#16 0x080f1950 in ?? () 
+#17 0x41cf3ff0 in ?? () 
+#18 0x00000000 in ?? () 
+#19 0x41646157 in ?? () 
+#20 0x40168c50 in __JCR_LIST__ () 
+   from /var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/.libs/libmono.so.0 
+#21 0x41316004 in ?? () 
+#22 0x41cf4020 in ?? () 
+#23 0x41d0c168 in ?? () 
+#24 0x08196838 in ?? () 
+#25 0x41646157 in ?? () 
+#26 0x41cf4020 in ?? () 
+#27 0x40054c6e in mono_jit_compile_method (method=0xfffffffc) at 
+mini.c:8016 
+Previous frame inner to this frame (corrupt stack?) 
+(gdb) thread 3 
+[Switching to thread 3 (Thread 1095887792 (LWP 5248))]#0  0xffffe410 
+in ?? () 
+(gdb) bt 
+#0  0xffffe410 in ?? () 
+#1  0x4151e828 in ?? () 
+#2  0x00000002 in ?? () 
+#3  0x00000000 in ?? () 
+#4  0x40bd53ab in __lll_mutex_lock_wait () from /lib/libpthread.so.0 
+#5  0x40bd2717 in _L_mutex_lock_75 () from /lib/libpthread.so.0 
+#6  0x00000001 in ?? () 
+#7  0x00000020 in ?? () 
+#8  0x080cdee0 in ?? () 
+#9  0x4151e840 in ?? () 
+#10 0x40168c50 in __JCR_LIST__ () 
+   from /var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/.libs/libmono.so.0 
+#11 0x080cdedc in ?? () 
+#12 0x4151e848 in ?? () 
+#13 0x400e7d48 in EnterCriticalSection (section=0x80cdee0) 
+    at critical-sections.c:140 
+Previous frame identical to this frame (corrupt stack?) 
+ 
+In most cases the print_method_from_ip() doesn't do much good, but 
+here are the results I see: 
+ 
+Thread 2: (sorry about the goofy order) 
+#26: No method at 0x41cf4020 
+#25: No method at 0x41646157 
+#24: No method at 0x8196838 
+#23: IP 0x41d0c168 at offset 0x20 of method (wrapper runtime-invoke) 
+Mono.CSharp.Namespace:.cctor (object,intptr,intptr) (0x41d0c148 
+0x41d0c1c8) 
+#22: No method at 0x41cf4020 
+#21: IP 0x41316004 at offset 0x4 of method (wrapper 
+managed-to-native) System.Object:__icall_wrapper_mono_ldftn (intptr) 
+(0x41316000 0x41316037) 
+#19: No method at 0x41646157 
+#18: No method at (nil) 
+#17: No method at 0x41cf3ff0 
+#16: No method at 0x80f1950 
+#15: No method at 0x813c7d8 
+#14: No method at 0x41cf4608 
+#13: No method at 0x8196838 
+#12: IP 0x41316024 at offset 0x24 of method (wrapper 
+managed-to-native) System.Object:__icall_wrapper_mono_ldftn (intptr) 
+(0x41316000 0x41316037) 
+#6:  No method at 0x41cf3f44 
+#3:  No method at (nil) 
+#2:  No method at (nil) 
+#1:  No method at 0xffffe410 
+ 
+Thread 3: 
+Any attempt to execute the method here causes the debugger to hang.  
+When I Ctrl+C the debugger and re-examine the stack trace I get: 
+ 
+#0  0xffffe410 in ?? () 
+#1  0x4151e6a0 in ?? () 
+#2  0x00000002 in ?? () 
+#3  0x00000000 in ?? () 
+#4  0x40bd53ab in __lll_mutex_lock_wait () from /lib/libpthread.so.0 
+#5  0x40bd2717 in _L_mutex_lock_75 () from /lib/libpthread.so.0 
+#6  0x40c79839 in _int_free () from /lib/libc.so.6 
+#7  0x400e7d48 in EnterCriticalSection (section=0x80cdedc) 
+    at critical-sections.c:140 
+#8  0x400cf818 in mono_jit_info_table_find (domain=0x80cded8, 
+    addr=0x4151e764 "\204çQAH}\016@àÞ\f\b¥\001") at domain.c:78 
+#9  0x4003c3f6 in print_method_from_ip (ip=0x4151e764) at mini.c:212 
+#10 <function called from gdb> 
+#11 0xffffe410 in ?? () 
+#12 0x4151e764 in ?? () 
+#13 0x00000002 in ?? () 
+#14 0x00000000 in ?? () 
+#15 0x40bd53ab in __lll_mutex_lock_wait () from /lib/libpthread.so.0 
+#16 0x40bd2717 in _L_mutex_lock_75 () from /lib/libpthread.so.0 
+#17 0x00001358 in ?? () 
+#18 0x08239a10 in ?? () 
+#19 0x00000006 in ?? () 
+#20 0x0000002d in ?? () 
+#21 0x40168c50 in __JCR_LIST__ () 
+   from /var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/.libs/libmono.so.0 
+#22 0x0804f5cc in ?? () 
+#23 0x4151e784 in ?? () 
+#24 0x400e7d48 in EnterCriticalSection (section=0x80cdee0) 
+    at critical-sections.c:140 
+Previous frame identical to this frame (corrupt stack?) 
+ 
+Thread 1: 
+Any attempt to use the print_method_from_ip trick hangs the 
+debugger.  It also seems to corrupt the stack for thread 1.  When I 
+try to get another trace I get this: 
+ 
+#0  0xffffe410 in ?? () 
+#1  0xbfffc90c in ?? () 
+#2  0x00000002 in ?? () 
+#3  0x00000000 in ?? () 
+#4  0x40bd53ab in __lll_mutex_lock_wait () from /lib/libpthread.so.0 
+#5  0x40bd2717 in _L_mutex_lock_75 () from /lib/libpthread.so.0 
+#6  0x00000000 in ?? () 
+#7  0x00000000 in ?? () 
+#8  0x00000000 in ?? () 
+#9  0x00000000 in ?? () 
+#10 0x40168c50 in __JCR_LIST__ () 
+   from /var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/.libs/libmono.so.0 
+#11 0x0804f5cc in ?? () 
+#12 0xbfffc92c in ?? () 
+#13 0x400e7d48 in EnterCriticalSection (section=0x80cdee0) 
+    at critical-sections.c:140 
+ 
+I am running a system with NTPL enabled.  I suspect that some of the 
+issues I am seeing stem from that. 
+ 
+I should also note that the emerge system uses the libtool version 
+of mini/mono to compile the MCS libs.  I don't know if that is SOP 
+or not. 
+ 
+Here is the actual command that is being issued by the build system 
+(note that this info is actually from a different compile attempt 
+than the the one that produced the above stack traces): 
+ 
+MONO_PATH="../../../class/lib:
+$MONO_PATH" /var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/mono  ../../../mcs/mcs.exe /r:mscorlib.dll /r:I18N.dll  
+-d:NET_1_1 -d:ONLY_1_1 
+-g /noconfig  /target:library /out:../../../class/lib/I18N.Other.dll 
+@I18N.Other.dll.sources 
+ 
+and more info: 
+ 
+cmdline:  
+lt-mono../../../mcs/mcs.exe/r:mscorlib.dll/r:I18N.dll-d:NET_1_1-d:ONLY_1_1-g/noconfig/target:library/out:../../../class/lib/I18N.Other.dll@I18N.Other.dll.source 
+ 
+exe:  
+/var/tmp/portage/mono-0.31/work/mono-0.31/mono/mini/.libs/lt-mono 
+ 
+cwd: /var/tmp/portage/mono-0.31/work/mcs-0.31/class/I18N/Other/ 
+ 
+ 
+If there is any other info that I can provide you with let me know.  
+I can reproduce this at will...  Exactly which library it will hang 
+on seems to be fairly random, but I have yet to get beyond the I18N 
+libs before the system hangs.