[Freeswitch-users] FreeSWITCH crash due to Signal 6 Abort while executing assert in nua_stack.c
Shaun Stokes
shaun.stokes at itec-support.co.uk
Wed Dec 13 11:48:16 UTC 2017
Hi,
Recently experienced a crash (Signal 6 Abort) on FreeSWITCH, daemon log as follows.
systemd[1]: freeswitch.service: main process exited, code=killed, status=6/ABRT
fs_cli[5866]: [ERROR] fs_cli.c:1659 main() Error Connecting [Socket Connection Error]
systemd[1]: freeswitch.service: control process exited, code=exited status=255
systemd[1]: Unit freeswitch.service entered failed state.
systemd[1]: freeswitch.service holdoff time over, scheduling restart.
systemd[1]: Stopping freeswitch...
systemd[1]: Starting freeswitch...
We don't have the FreeSWITCH logs for this particular incident, back-trace as follows.
================================================================================
# bt full
================================================================================
#0 0x00007f6b05f79067 in __GI_raise (sig=sig at entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
resultvar = 0
pid = 20383
selftid = 20402
#1 0x00007f6b05f7a448 in __GI_abort () at abort.c:89
save_stage = 2
act = {__sigaction_handler = {sa_handler = 0x7fff30339e75, sa_sigaction = 0x7fff30339e75}, sa_mask = {__val = {140097639576617, 140097517785411, 959, 4, 140097512340528, 0, 140096967610088, 4294967296, 0, 0, 0, 21474836480, 140097639576143, 140097512340680, 140097676636160, 140097639591704}}, sa_flags = -20442716, sa_restorer = 0x7f6afec8139a <__PRETTY_FUNCTION__.16073>}
sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007f6b05f72266 in __assert_fail_base (fmt=0x7f6b060aaf18 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion at entry=0x7f6afec811a4 "*nh->nh_prev == nh", file=file at entry=0x7f6afec81143 "nua_stack.c", line=line at entry=959, function=function at entry=0x7f6afec8139a <__PRETTY_FUNCTION__.16073> "nh_remove") at assert.c:92
str = 0x7f67e44770f0 ""
total = 4096
#3 0x00007f6b05f72312 in __GI___assert_fail (assertion=assertion at entry=0x7f6afec811a4 "*nh->nh_prev == nh", file=file at entry=0x7f6afec81143 "nua_stack.c", line=line at entry=959, function=function at entry=0x7f6afec8139a <__PRETTY_FUNCTION__.16073> "nh_remove") at assert.c:101
No locals.
#4 0x00007f6afebf3a36 in nh_remove (nua=0x7f6aec019e70, nh=0x7f6adfb244a0) at nua_stack.c:959
No locals.
#5 nh_destroy (nua=0x7f6aec019e70, nh=0x7f6adfb244a0) at nua_stack.c:998
nh = 0x7f6adfb244a0
nua = 0x7f6aec019e70
#6 0x00007f6afebf4ba5 in nua_stack_destroy_handle (tags=<optimized out>, nh=<optimized out>, nua=<optimized out>) at nua_stack.c:660
No locals.
#7 nua_stack_signal (nua=0x7f6aec019e70, msg=0x31, ee=0x7f6ac401fba8) at nua_stack.c:661
nh = 0x7f6adfb244a0
tags = 0x7f6ac401fbd0
event = nua_r_destroy
error = 0
__func__ = "nua_stack_signal"
#8 0x00007f6afec276d2 in su_base_port_execute_msgs (queue=0x7f67ea5624b0) at su_base_port.c:280
root = <optimized out>
f = <optimized out>
msg = 0x0
n = 12
#9 0x00007f6afec27bcd in su_base_port_run (self=0x7f6adc0008c0) at su_base_port.c:335
tout = 15000
tout2 = 0
__PRETTY_FUNCTION__ = "su_base_port_run"
#10 0x00007f6afec2c900 in su_pthread_port_clone_main (varg=0x7f6afea2e750) at su_pthread_port.c:343
arg = 0x0
task = {{sut_port = 0x7f6adc0008c0, sut_root = 0x7f6adc001130}}
zap = 1
#11 0x00007f6b062f7064 in start_thread (arg=0x7f6afe750700) at pthread_create.c:309
__res = <optimized out>
pd = 0x7f6afe750700
now = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140097512343296, 1338962068899872702, 0, 140097676709984, 27192672, 140097512343296, -1422840606975082562, -1422294471635779650}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
pagesize_m1 = <optimized out>
sp = <optimized out>
freesize = <optimized out>
__PRETTY_FUNCTION__ = "start_thread"
#12 0x00007f6b0602c62d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
No locals.
Essentially it failed on 'assert(*nh->nh_prev == nh);?' while executing this function in 'nua_stack.c'.
###############
/** @internal Remove a handle from list of handles */
static
void nh_remove(nua_t *nua, nua_handle_t *nh)
{
assert(nh_is_inserted(nh)); assert(*nh->nh_prev == nh);
if (nh->nh_next)
nh->nh_next->nh_prev = nh->nh_prev;
else
nua->nua_handles_tail = nh->nh_prev;
*nh->nh_prev = nh->nh_next;
nh->nh_prev = NULL;
nh->nh_next = NULL;
}
###############
It's difficult for us to understand the exact cause with-out a copy of the logs,? if anyone has seem something similar or might be able to point us in the right direction we would be greatful.
Thanks,
S
______________________________________________________________________
This message has been checked for all known viruses by MessageLabs Virus Scanning Service.
______________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20171213/02d2f7bd/attachment.html>
More information about the FreeSWITCH-users
mailing list