[Mono-list] All threads go into sigsuspend()

Dave Curylo curylod at asme.org
Tue Mar 19 22:34:32 UTC 2013

I'm running mono on CentOS 6.3 and running a mono-service application.  It seems to run fine for a while, but then after a few hours appears hung.  No CPU is in use, but my application doesn't respond to HTTP requests anymore, isn't logging anything, nothing.  I used gdb to get a backtrace when it's hung, and it appears that every thread is stuck in sigsuspend().  Most seem to be following a _GC_suspend_handler, like here is an example:

Thread 13 (Thread 0x7f4c286a7700 (LWP 1395)):
#0  0x00007f4c2f1abc54 in sigsuspend () from /lib64/libc.so.6
#1  0x00000000005f2efe in _GC_suspend_handler (sig=30) at pthread_stop_world.c:186
#2  0x00000000005f2f3d in GC_suspend_handler (sig=30) at pthread_stop_world.c:211
#3  <signal handler called>
#4  0x00007f4c2f5177bb in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#5  0x00000000005aeeed in _wapi_handle_timedwait_signal_handle (handle=0x42b, timeout=0x7f4c286a6810, alertable=1, poll=<value optimized out>) at handles.c:1653
#6  0x00000000005a6a11 in WaitForSingleObjectEx (handle=0x42b, timeout=9999, alertable=1) at wait.c:205
#7  0x00000000005995ab in ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<value optimized out>, handle=0x42b, ms=9999, exitContext=<value optimized out>) at threads.c:1665
#8  0x00000000413d31f8 in ?? ()
#9  0x00007f4c10000c40 in ?? ()
#10 0x00007fff1d77ba37 in clock_gettime ()
#11 0x00000000413d2ddb in ?? ()
#12 0x000000000000270f in ?? ()
#13 0x000000000000270f in ?? ()
#14 0x00000000413d1340 in ?? ()
#15 0x00000000413d137b in ?? ()
#16 0x0000000000000000 in ?? ()

After I stop and restart the mono-service, the application responds as normal, and most of the threads are in pthread_cond_wait, but NONE of them are in sigsuspend():

Thread 13 (Thread 0x7fabf2954700 (LWP 7493)):
#0  0x00007fabf4af643c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00000000005e455f in GC_wait_marker () at pthread_support.c:1863
#2  0x00000000005d55bd in GC_help_marker (my_mark_no=105) at mark.c:1116
#3  0x00000000005e32e0 in GC_mark_thread (id=0x3) at pthread_support.c:552
#4  0x00007fabf4af2851 in start_thread () from /lib64/libpthread.so.0
#5  0x00007fabf484090d in clone () from /lib64/libc.so.6

Any idea why all the threads would go into sigsuspend()?  I'm not using sgen, by the way.  I can try if anyone expects that to be of any help.

If you need a full backtrace of all the threads, let me know.

Thanks for your help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-list/attachments/20130319/0c3de6fc/attachment.html>

More information about the Mono-list mailing list