[Mono-bugs] [Bug 79738][Nor] New - runtime crash under stress

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Oct 25 15:31:41 EDT 2006


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 awaddell at fnfr.com.

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

--- shadow/79738	2006-10-25 15:31:41.000000000 -0400
+++ shadow/79738.tmp.4494	2006-10-25 15:31:41.000000000 -0400
@@ -0,0 +1,397 @@
+Bug#: 79738
+Product: Mono: Runtime
+Version: 1.1
+OS: Red Hat 8.0
+OS Details: Red Hat Enterprise Linux WS release 4
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Normal
+Component: GC
+AssignedTo: lupus at ximian.com                            
+ReportedBy: awaddell at fnfr.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: runtime crash under stress
+
+This problem is blocking us right now with one of our customers.
+
+Description of Problem:
+Our application is itself a test application.  When we run a simple test
+case everything works fine, but if we put the same test in a loop, we can
+consistently reproduce a crash of the mono runtime after about 400
+iterations.  It appears to be related to the GC, but I'm not really sure. 
+We've followed the steps to get the stack traces from gdb, which I hope is
+enough to solve the problem.
+
+If need be, we are willing to find a way to ship our application so that it
+can be run and will reproduce the problem.  Stack traces are below.
+
+Steps to reproduce the problem:
+1. 
+2. 
+3. 
+
+Actual Results:
+
+
+Expected Results:
+Program received signal SIGSEGV, Segmentation fault.
+
+[Switching to Thread 1182640 (LWP 4648)]
+
+0x005a1d30 in vfprintf () from /lib/tls/libc.so.6
+
+(gdb) mono_backtrace 15
+
+Undefined command: "mono".  Try "help".
+
+(gdb) help define
+
+Define a new command name.  Command name is argument.
+
+Definition appears on following lines, one command per line.
+
+End with a line of just "end".
+
+Use the "document" command to give documentation for the new command.
+
+Commands defined in this way may have up to ten arguments.
+
+(gdb) define mono_backtrace
+
+Type commands for definition of "mono_backtrace".
+
+End with a line saying just "end".
+
+> select-frame 0
+
+> set $i = 0
+
+> while ($i < $arg0)
+
+ >   set $foo = mono_pmip ($pc)
+
+ >   if ($foo == 0x00)
+
+  >     frame
+
+  >   else
+
+  >     printf "#%d %p in %s\n", $i, $pc, $foo
+
+  >   end
+
+ >   up-silently
+
+ >   set $i = $i + 1
+
+ > end
+
+>end
+
+(gdb) mono_backtrace
+
+Missing argument 0 in user function.
+
+ 
+
+(gdb) mono_backtrace 15
+
+ 
+
+Program received signal SIGSEGV, Segmentation fault.
+
+0x081281e0 in mono_pmip ()
+
+The program being debugged was signaled while in a function called from GDB.
+
+GDB remains in the frame where the signal was received.
+
+To change this behavior use "set unwindonsignal on"
+
+Evaluation of the expression containing the function (mono_pmip) will be
+abandoned.
+
+(gdb) define mono_stack
+
+endType commands for definition of "mono_stack".
+
+End with a line saying just "end".
+
+> set $mono_thread = mono_thread_current ()
+
+> if ($mono_thread == 0x00)
+
+ >   printf "No mono thread associated with this thread\n"
+
+ > else
+
+ >   set $ucp = malloc (sizeof (ucontext_t))
+
+ >   call (void) getcontext ($ucp)
+
+ >   call (void) mono_print_thread_dump ($ucp)
+
+ >   call (void) free ($ucp)
+
+ > end
+
+>end
+
+(gdb) mono_stack
+
+ 
+
+Program received signal SIGSEGV, Segmentation fault.
+
+0x0809e050 in mono_thread_current ()
+
+The program being debugged was signaled while in a function called from GDB.
+
+GDB remains in the frame where the signal was received.
+
+To change this behavior use "set unwindonsignal on"
+
+Evaluation of the expression containing the function (mono_thread_current)
+will be abandoned.
+
+(gdb) set unwindonsignal on
+
+(gdb) thread apply all mono_stack
+
+ 
+
+Thread 1632 (Thread 117271472 (LWP 6287)):
+
+ 
+
+Program received signal SIGSEGV, Segmentation fault.
+
+[Switching to Thread 1182640 (LWP 4648)]
+
+0x0809e050 in mono_thread_current ()
+
+The program being debugged was signaled while in a function called from GDB.
+
+GDB has restored the context to what it was before the call.
+
+To change this behavior use "set unwindonsignal off"
+
+Evaluation of the expression containing the function (mono_thread_current)
+will be abandoned.
+
+(gdb) set unwindonsignal off
+
+(gdb) thread apply all mono_stack
+
+ 
+
+Thread 1632 (Thread 117271472 (LWP 6287)):
+
+ 
+
+Program received signal SIGSEGV, Segmentation fault.
+
+0x0068e011 in ?? () from /lib/tls/libc.so.6
+
+The program being debugged was signaled while in a function called from GDB.
+
+GDB remains in the frame where the signal was received.
+
+To change this behavior use "set unwindonsignal on"
+
+Evaluation of the expression containing the function (mono_thread_current)
+will be abandoned.
+
+(gdb) set unwindonsignal on
+
+(gdb) mono_backtrace 15
+
+ 
+
+Program received signal SIGSEGV, Segmentation fault.
+
+[Switching to Thread 117271472 (LWP 6287)]
+
+0x0068e011 in ?? () from /lib/tls/libc.so.6
+
+The program being debugged was signaled while in a function called from GDB.
+
+GDB has restored the context to what it was before the call.
+
+To change this behavior use "set unwindonsignal off"
+
+Evaluation of the expression containing the function (mono_pmip) will be
+abandoned.
+
+(gdb) where
+
+#0  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#1  0x0058fd77 in sigsuspend () from /lib/tls/libc.so.6
+
+#2  0x0811bdd3 in mono_path_resolve_symlinks ()
+
+#3  0x0811be40 in mono_path_resolve_symlinks ()
+
+#4  <signal handler called>
+
+#5  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#6  0x00399cfc in pthread_cond_timedwait@@GLIBC_2.3.2 () from
+/lib/tls/libpthread.so.0
+
+#7  0x0810c857 in mono_pthread_key_for_tls ()
+
+#8  0x0810caa4 in mono_pthread_key_for_tls ()
+
+#9  0x0810c947 in mono_pthread_key_for_tls ()
+
+#10 0x0810ff5b in mono_pthread_key_for_tls ()
+
+#11 0x0809e3ee in mono_thread_current ()
+
+#12 0x0038a837 in ?? ()
+
+#13 0xb77ffe58 in ?? ()
+
+#14 0x00001199 in ?? ()
+
+#15 0xffffffff in ?? ()
+
+#16 0x00000000 in ?? ()
+
+(gdb) thread apply all mono_stack
+
+ 
+
+Thread 1632 (Thread 117271472 (LWP 6287)):
+
+No symbol table is loaded.  Use the "file" command.
+
+(gdb) thread apply all
+
+Please specify a command following the thread ID list
+
+(gdb) thread apply all mono_backtrace 15
+
+ 
+
+Thread 1632 (Thread 117271472 (LWP 6287)):
+
+#0  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#1  0x0058fd77 in sigsuspend () from /lib/tls/libc.so.6
+
+#2  0x0811bdd3 in mono_path_resolve_symlinks ()
+
+#3  0x0811be40 in mono_path_resolve_symlinks ()
+
+#4  <signal handler called>
+
+#5  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#6  0x00399cfc in pthread_cond_timedwait@@GLIBC_2.3.2 () from
+/lib/tls/libpthread.so.0
+
+#7  0x0810c857 in mono_pthread_key_for_tls ()
+
+#8  0x0810caa4 in mono_pthread_key_for_tls ()
+
+#9  0x0810c947 in mono_pthread_key_for_tls ()
+
+#10 0x0810ff5b in mono_pthread_key_for_tls ()
+
+#11 0x0809e3ee in mono_thread_current ()
+
+#12 0x38a837 in  (wrapper managed-to-native)
+System.Threading.WaitHandle:WaitOne_internal (intptr,int,bool) + 0x2f
+(0x38a    808 0x38a86a) [0x25f00 - ffsvt.exe]
+
+#13 0xb77ffe58 in ?? ()
+
+#14 0x00001199 in ?? ()
+
+ 
+
+Thread 37 (Thread 36555696 (LWP 4690)):
+
+[Switching to Thread 36555696 (LWP 4690)]
+
+#0  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#1  0x0039b980 in sem_wait at GLIBC_2.0 () from /lib/tls/libpthread.so.0
+
+#2  0xffffffff in ?? ()
+
+#3  0x0811c28c in mono_path_resolve_symlinks ()
+
+#4  0x0812077d in GC_end_blocking ()
+
+#5  0x08120396 in GC_end_blocking ()
+
+#6  0x0812128a in GC_end_blocking ()
+
+#7  0x08121490 in GC_end_blocking ()
+
+#8  0x08124d10 in GC_end_blocking ()
+
+#9  0x08124dff in GC_end_blocking ()
+
+#10 0x08124fe4 in GC_end_blocking ()
+
+#11 0x080dfca0 in mono_array_new_specific ()
+
+#12 0x123067 in  (wrapper managed-to-native)
+System.Object:__icall_wrapper_mono_array_new_specific (intptr,int) + 0x27
+(0    x123040 0x12308b) [0x25f00 - ffsvt.exe]
+
+#13 0x081f7ff4 in ?? ()
+
+#14 0x00000002 in ?? ()
+
+ 
+
+Thread 36 (Thread 35503024 (LWP 4689)):
+
+[Switching to Thread 35503024 (LWP 4689)]
+
+#0  0x001377a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
+
+#1  0x00399cfc in pthread_cond_timedwait@@GLIBC_2.3.2 () from
+/lib/tls/libpthread.so.0
+
+#2  0x0810c857 in mono_pthread_key_for_tls ()
+
+#3  0x0810caa4 in mono_pthread_key_for_tls ()
+
+#4  0x0810ff04 in mono_pthread_key_for_tls ()
+
+#5  0x0809e3ee in mono_thread_current ()
+
+#6 0x38a837 in  (wrapper managed-to-native)
+System.Threading.WaitHandle:WaitOne_internal (intptr,int,bool) + 0x2f
+(0x38a8    08 0x38a86a) [0x25f00 - ffsvt.exe]
+
+#7  0x02c649d8 in ?? ()
+
+---Type <return> to continue, or q <return> to quit---
+
+#8  0x0000069a in ?? ()
+
+#9  0x000003e8 in ?? ()
+
+#10 0x00000000 in ?? ()
+
+Initial frame selected; you cannot go up.
+
+(gdb)
+
+
+How often does this happen? 
+
+
+Additional Information:


More information about the mono-bugs mailing list