Система gentoo:
cat /proc/version
Linux version 4.4.6-gentoo (root@livecd) (gcc version 4.9.3 (Gentoo 4.9.3 p1.5, pie-0.6.4) ) #1 SMP Fri Oct 7 21:24:54 MSK 2016
Периодически падает астериск, произвольно при использовании (пока не введен в продакшн, готовится), дампа пока нет. Включены SRTP, нужно для Websockets (связка suitcrm + asterisk)
Стабильно падает при перезагрузке конфига (импорт 100ext + apply). Проблема воспроизводится на версиях 13.2, 13.11.2-r1
Поиск в интернете выдал что-то похожее https://issues.asterisk.org/jira/browse/ASTERISK-24961 , но там сказано что проблема устранена в версии 13.5, и немного другой контекст (возможно, это была причина самопроизвольных падений, пока не повторялось).
Пересобрал астериск и glibc с флагами debug, включил FEATURES="splitdebug installsources nostrip", CFLAGS="-march=native -O2 -pipe -ggdb"
Вывод gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff52847700 (LWP 19383)]
__memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
35 movdqu %xmm8, (%rdi)
(gdb) bt
#0 __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
#1 0x00007fff536cf538 in reload_config (reason=CHANNEL_MODULE_RELOAD) at chan_sip.c:32832
#2 0x00007fff536d2cfd in sip_do_reload (reason=CHANNEL_MODULE_RELOAD) at chan_sip.c:33711
#3 0x00007fff536b60ed in do_monitor (data=0x0) at chan_sip.c:29428
#4 0x000000000060caf8 in dummy_start (data=0x26c1d20) at utils.c:1235
#5 0x00007ffff5d19494 in start_thread (arg=0x7fff52847700) at pthread_create.c:334
#6 0x00007ffff55f05dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) f
#0 __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
35 movdqu %xmm8, (%rdi)
(gdb) bt full
#0 __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:35
No locals.
#1 0x00007fff536cf538 in reload_config (reason=CHANNEL_MODULE_RELOAD) at chan_sip.c:32832
cfg = 0x7fffb400b3d0
ucfg = 0x7fffb400d3f0
v = 0x0
peer = 0x7fff52846b10
cat = 0x7ffff589d5c0 ""
stringp = 0x2d30312d00003000
context = 0x7fffffffa50f "3"
oldregcontext = 0x7fff52846c00 ""
newcontexts = "\000\000\000\000\000\000\000\000\246}\000\264\377\177\000\000\362\000\000\000\000\000\000\000pl\204R\377\177\000\000(\000\000\000\001\000\000\000\207|\000\264\377\177\000\000\000m\204R\377\177\000\000\000@\\\360\206\t\201\a l\204R\377\177\000\000H\236`\000\000\000\000"
oldcontexts = "\000\000\000\000\000\000\000\000\230}\000\264\377\177\000\000\220l\204R\377\177\000\000ƆT\000\000\000\000\000x|\000\264\377\177\000\000\224\206T\000\000\000\000\000\340l\204R\377\177\000\000\246}\000\264\377\177\000\000\000\000\000\000\000\000\000\000\"JoS\377\177\000"
mask = {{flags = 2155085824}, {flags = 1040}, {flags = 12}}
setflags = {{flags = 0}, {flags = 0}, {flags = 0}}
config_flags = {flags = 0}
auto_sip_domains = 0
old_bindaddr = {ss = {ss_family = 2, __ss_align = 0, __ss_padding = '\000' }, len = 16}
registry_count = 0
peer_count = 0
timerb_set = 0
timert1_set = 0
subscribe_network_change = 1
run_start = 1476634672
run_end = 5538553
bindport = 5060
acl_change_subscription_needed = 0
min_subexpiry_set = 0
max_subexpiry_set = 0
websocket_was_enabled = 1
__PRETTY_FUNCTION__ = "reload_config"
#2 0x00007fff536d2cfd in sip_do_reload (reason=CHANNEL_MODULE_RELOAD) at chan_sip.c:33711
start_poke = 0
end_poke = 0
__PRETTY_FUNCTION__ = "sip_do_reload"
#3 0x00007fff536b60ed in do_monitor (data=0x0) at chan_sip.c:29428
res = 0
t = 1476634671
reloading = 1
__PRETTY_FUNCTION__ = "do_monitor"
#4 0x000000000060caf8 in dummy_start (data=0x26c1d20) at utils.c:1235
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, -5278646503051497021, 0, 140737488332047, 0, 140734577800960, -5278646503041011261, 5278464162042737091},
__mask_was_saved = 0}}, __pad = {0x7fff52846ef0, 0x0, 0x0, 0x0}}
__cancel_routine = 0x450e57
__cancel_arg = 0x7fff52847700
__not_first_call = 0
ret = 0x0
a = {start_routine = 0x7fff536b5fee , data = 0x0, name = 0x255ca40 "do_monitor", ' ' , "started at [29505] chan_sip.c restart_monitor()"}
lock_info = 0x7fffb4002340
mutex_attr = {__size = "\001\000\000", __align = 1}
__PRETTY_FUNCTION__ = "dummy_start"
#5 0x00007ffff5d19494 in start_thread (arg=0x7fff52847700) at pthread_create.c:334
__res =
pd = 0x7fff52847700
now =
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140734577800960, 5278464992937636291, 0, 140737488332047, 0, 140734577800960, -5278646503053594173, -5278442707573018173},
mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call =
pagesize_m1 =
sp =
---Type to continue, or q to quit---
freesize =
__PRETTY_FUNCTION__ = "start_thread"
#6 0x00007ffff55f05dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.
(gdb) x 0x2d30312d00003000
0x2d30312d00003000: Cannot access memory at address 0x2d30312d00003000
Есть идеи?
попробовать варианты - один вариант - pjsip или sip - и грузить только один модуль из них
_________________
платный суппорт по мере возможностей
| awsswa @ Пн Окт 17, 2016 06:43 писал(а): |
| Собрать на рекомендованной платформе - centos попробовать варианты - один вариант - pjsip или sip - и грузить только один модуль из них |
Хотелось бы разобраться
Added after 22 seconds:
| gralech @ Пн Окт 17, 2016 10:16 писал(а): |
| Хотелось бы разобраться |
Включен только модуль sip
снесите все из modules и начинайте потихоньку добавлять обратно и смотреть на реакцию
_________________
платный суппорт по мере возможностей