MONO-monosgen运行时错误

MONO-monosgen运行时错误,mono,Mono,当我们的程序在繁重的工作负载下运行时,我们收到了一个错误。600多个线程工作。当前mono版本2.10.9,我们使用 “--prefix=/usr--with large heap=yes--enable parallel mark”参数 我们无法处理代码内部的错误。您可以在下面找到一些输出 Native stacktrace: /usr/bin/mono-sgen() [0x4940b2] /usr/bin/mono-sgen() [0x4e833f] /usr/bi

当我们的程序在繁重的工作负载下运行时,我们收到了一个错误。600多个线程工作。当前mono版本2.10.9,我们使用 “--prefix=/usr--with large heap=yes--enable parallel mark”参数

我们无法处理代码内部的错误。您可以在下面找到一些输出

Native stacktrace:

    /usr/bin/mono-sgen() [0x4940b2]
    /usr/bin/mono-sgen() [0x4e833f]
    /usr/bin/mono-sgen() [0x41bdc7]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0) [0x7feecd473cb0]
    /usr/bin/mono-sgen() [0x5a706e]
    /usr/bin/mono-sgen() [0x5a71a9]
    /usr/bin/mono-sgen() [0x5a79bf]
    /usr/bin/mono-sgen() [0x5906ca]
    /usr/bin/mono-sgen() [0x593443]
    /usr/bin/mono-sgen() [0x4147ad]
    /usr/bin/mono-sgen() [0x5958ed]
    /usr/bin/mono-sgen() [0x595a6f]
    /usr/bin/mono-sgen(mono_string_new_size+0x4c) [0x56671c]
    [0x405f4c5a]

Debug info from gdb:

Mono support loaded.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fee7a6ca700 (LWP 24808)]
[New Thread 0x7fee7b977700 (LWP 24807)]
...

0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
  Id   Target Id         Frame 
  46   Thread 0x7feecb0bd700 (LWP 14184) "mono-sgen" 0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
  3    Thread 0x7fee7b977700 (LWP 24807) "mono-sgen" 0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
...
  2    Thread 0x7fee7a6ca700 (LWP 24808) "mono-sgen" 0x00007feecd47388d in waitpid () from /lib/x86_64-linux-gnu/libpthread.so.0
* 1    Thread 0x7feecdf9b780 (LWP 14181) "mono-sgen" 0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
...
Thread 46 (Thread 0x7feecb0bd700 (LWP 14184)):
#0  0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x000000000058a6fb in suspend_handler (sig=<optimized out>, siginfo=<optimized out>, context=0x7feecb0bc7c0) at sgen-gc.c:5322
#2  <signal handler called>
#3  0x00007feecd471fce in sem_wait () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00000000005e6458 in mono_sem_wait (sem=0x905ce0, alertable=1) at mono-semaphore.c:113
#5  0x0000000000515665 in finalizer_thread (unused=<optimized out>) at gc.c:1066
#6  0x00000000005b6d31 in start_wrapper_internal (data=0xc31080) at threads.c:784
#7  start_wrapper (data=0xc31080) at threads.c:832
#8  0x00000000005e0e42 in thread_start_routine (args=0xc13590) at wthreads.c:287
#9  0x000000000058dab8 in gc_start_thread (arg=0xc31020) at sgen-gc.c:6154
#10 0x00007feecd46be9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007feecd1983fd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 45 (Thread 0x7feeca40d700 (LWP 14192)):
#0  0x00007feecd0da7a4 in sigsuspend () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x000000000058a6fb in suspend_handler (sig=<optimized out>, siginfo=<optimized out>, context=0x7feeca40c180) at sgen-gc.c:5322
#2  <signal handler called>
#3  0x00007feecd4700fe in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00000000005cd258 in _wapi_handle_timedwait_signal_handle (handle=0x40a, timeout=0x7feeca40c8a0, alertable=1, poll=<optimized out>) at handles.c:1653
#5  0x00000000005de3be in WaitForSingleObjectEx (handle=0x40a, timeout=466, alertable=1) at wait.c:205
#6  0x00000000005b666b in ves_icall_System_Threading_WaitHandle_WaitOne_internal (this=<optimized out>, handle=0x40a, ms=466, exitContext=<optimized out>) at threads.c:1665
#7  0x0000000041241d98 in ?? ()
#8  0x00007feebc0022a0 in ?? ()
本机堆栈跟踪:
/usr/bin/mono-sgen()[0x4940b2]
/usr/bin/mono-sgen()[0x4e833f]
/usr/bin/mono-sgen()[0x41bdc7]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xfcb0)[0x7feec473cb0]
/usr/bin/mono-sgen()[0x5a706e]
/usr/bin/mono-sgen()[0x5a71a9]
/usr/bin/mono-sgen()[0x5a79bf]
/usr/bin/mono-sgen()[0x5906ca]
/usr/bin/mono-sgen()[0x593443]
/usr/bin/mono-sgen()[0x4147ad]
/usr/bin/mono-sgen()[0x5958ed]
/usr/bin/mono-sgen()[0x595a6f]
/usr/bin/mono sgen(mono字符串新大小+0x4c)[0x56671c]
[0x405f4c5a]
来自gdb的调试信息:
单声道支持加载。
[已启用使用libthread_db的线程调试]
使用主机libthread_db library“/lib/x86_64-linux-gnu/libthread_db.so.1”。
[新螺纹0x7fee7a6ca700(LWP 24808)]
[新螺纹0x7fee7b977700(LWP 24807)]
...
/lib/x86_64-linux-gnu/libc.so.6中的sigssuspend()中的0x00007feecd0da7a4
Id目标Id帧
46来自/lib/x86_64-linux-gnu/libc.so.6的SIGSSUSPEND()中的线程0x7feecb0bd700(LWP 14184)“mono sgen”0x00007feecd0da7a4
来自/lib/x86_64-linux-gnu/libc.so.6的SIGSSUSPEND()中的3个线程0x7fee7b977700(LWP 24807)“mono-sgen”0x00007feecd0da7a4
...
来自/lib/x86_64-linux-gnu/libpthread.so.0的waitpid()中的两个线程0x7fee7a6ca700(LWP 24808)“mono sgen”0x00007feec47388d
*1个线程0x7feecdf9b780(LWP 14181)“mono sgen”0x00007feecd0da7a4位于/lib/x86_64-linux-gnu/libc.so.6的SIGSSUSPEND()中
...
螺纹46(螺纹0x7feecb0bd700(LWP 14184)):
#0 0x00007feecd0da7a4,位于/lib/x86_64-linux-gnu/libc.so.6的SIGSSUSPEND()中
#sgen gc.c:5322处的suspend_处理程序(sig=,siginfo=,context=0x7feecb0bc7c0)中有1 0x000000000058a6fb
#2  
#3/lib/x86_64-linux-gnu/libpthread.so.0中的sem_wait()中的0x00007feed471fce
#4 0x00000000005e6458在单声道信号灯处的单声道扫描等待中(扫描电镜=0x905ce0,可报警=1)。c:113
#gc.c:1066处终结器线程(未使用=)中的5 0x0000000000515665
#6 0x00000000005b6d31,位于线程处的起始包装内部(数据=0xc31080)。c:784
#7在线程处启动包装器(数据=0xc31080)。c:832
#8 0x00000000005e0e42,位于wthreads的线程启动例程(args=0xc13590)中。c:287
#sgen gc.c:6154处gc_开始_线程(arg=0xc31020)中的9 0x000000000058dab8
#10 0x00007feec46be9a位于/lib/x86_64-linux-gnu/libpthread.so.0的start_线程()中
#11 0x00007feecd1983fd位于/lib/x86_64-linux-gnu/libc.so.6的克隆()中
#12 0x0000000000000000英寸??()
螺纹45(螺纹0x7feeca40d700(LWP 14192)):
#0 0x00007feecd0da7a4,位于/lib/x86_64-linux-gnu/libc.so.6的SIGSSUSPEND()中
#sgen gc.c:5322处的suspend_处理程序(sig=,siginfo=,context=0x7feeca40c180)中有1 0x000000000058a6fb
#2  
#来自/lib/x86\u 64-linux-gnu/libpthread.so.0的pthread_cond_timedwait@GLIBC_2.3.2()中的3 0x00007feed4700fe
#4 0x00000000005cd258 in_wapi_handle_timedwait_signal_handle(handle=0x40a,timeout=0x7feeca40c8a0,alertable=1,poll=)位于句柄处。c:1653
#5 0x00000000005de3be位于wait处的WaitForSingleObjectEx中(句柄=0x40a,超时=466,可报警=1)。c:205
#6 0x00000000005b666b在ves_icall_System_Threading_WaitHandle_WaitOne_internal(this=,handle=0x40a,ms=466,exitContext=)的线程中。c:1665
#7 0x0000000041241d98英寸??()
#8 0x00007feebc0022a0英寸??()

Mono的SGEN垃圾收集器在2.x版时不符合生产质量要求。如今,Mono版本2.10.x可以被认为非常古老。请升级到Mono 3.2.x