Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: freeswitch-core
-
Labels:None
-
Platform:Linux x86_64/gcc
-
Uname:Linux 2.6.23.9
-
CPU Info:x86_64
-
GCC Version:gcc 4.1.2
-
FreeSWITCH GIT Revision:14014
-
Reproduced with GIT HEAD?:yes
Description
Sometimes, but not every time a call disconnects, FreeSWITCH is bailing out with:
freeswitch: nta.c:8905: outgoing_terminate_invite: Assertion `orq->orq_forking == original' failed.
(gdb) bt
#0 0x00002afbfb6d1165 in raise () from /lib/libc.so.6
#1 0x00002afbfb6d24de in abort () from /lib/libc.so.6
#2 0x00002afbfb6ca49f in __assert_fail () from /lib/libc.so.6
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
#4 0x00002aaaaba540c6 in outgoing_timer_dk (q=0x7c9950, timer=0x2aaaabb37244 "D", now=2008411129) at nta.c:8886
#5 0x00002aaaaba538ba in outgoing_timer (sa=0x7c9610) at nta.c:8697
#6 0x00002aaaaba387ef in agent_timer (rm=0x2aaab8078f90, timer=0x6d76e0, agent=0x7c9610) at nta.c:1237
#7 0x00002aaaabae45ed in su_timer_expire (timers=0x6dec68, timeout=0x40257008, now={tv_sec = 3455162117, tv_usec = 113368}) at su_timer.c:575
#8 0x00002aaaabadd01e in su_base_port_run (self=0x6dec20) at su_base_port.c:339
#9 0x00002aaaabacdd71 in su_port_run (self=0x6dec20) at su_port.h:326
#10 0x00002aaaabacdd49 in su_root_run (self=0x6df950) at su_root.c:819
#11 0x00002aaaabadbdca in su_pthread_port_clone_main (varg=0x4030ab30) at su_pthread_port.c:324
#12 0x00002afbfaa66087 in start_thread () from /lib/libpthread.so.0
#13 0x00002afbfb765ccd in clone () from /lib/libc.so.6
#14 0x0000000000000000 in ?? ()
(gdb) bt full
#0 0x00002afbfb6d1165 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00002afbfb6d24de in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00002afbfb6ca49f in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
orq = (nta_outgoing_t *) 0x8b1420
__PRETTY_FUNCTION__ = "outgoing_terminate_invite"
#4 0x00002aaaaba540c6 in outgoing_timer_dk (q=0x7c9950, timer=0x2aaaabb37244 "D", now=2008411129) at nta.c:8886
orq = (nta_outgoing_t *) 0x695090
terminated = 1
#5 0x00002aaaaba538ba in outgoing_timer (sa=0x7c9610) at nta.c:8697
now = 2008411129
orq = (nta_outgoing_t *) 0x0
rq = {{q_tail = 0x40256e28, q_head = 0x0, q_length = 0, q_timeout = 0}}
retransmitted = 0
terminated = 0
timeout = 0
destroyed = 46912513043680
total = 1
trying = 0
pending = 0
completed = 1
__PRETTY_FUNCTION__ = "outgoing_timer"
#6 0x00002aaaaba387ef in agent_timer (rm=0x2aaab8078f90, timer=0x6d76e0, agent=0x7c9610) at nta.c:1237
stamp = {tv_sec = 3455162117, tv_usec = 113371}
now = 2008411129
next = 7207248
latest = 0
__PRETTY_FUNCTION__ = "agent_timer"
#7 0x00002aaaabae45ed in su_timer_expire (timers=0x6dec68, timeout=0x40257008, now={tv_sec = 3455162117, tv_usec = 113368}) at su_timer.c:575
t = (su_timer_t *) 0x6d76e0
f = (su_timer_f) 0x2aaaaba38758 <agent_timer>
n = 0
__PRETTY_FUNCTION__ = "su_timer_expire"
#8 0x00002aaaabadd01e in su_base_port_run (self=0x6dec20) at su_base_port.c:339
now = {tv_sec = 3455162117, tv_usec = 113368}
tout = 15000
tout2 = 0
__PRETTY_FUNCTION__ = "su_base_port_run"
#9 0x00002aaaabacdd71 in su_port_run (self=0x6dec20) at su_port.h:326
base = (su_virtual_port_t *) 0x6dec20
#10 0x00002aaaabacdd49 in su_root_run (self=0x6df950) at su_root.c:819
__PRETTY_FUNCTION__ = "su_root_run"
#11 0x00002aaaabadbdca in su_pthread_port_clone_main (varg=0x4030ab30) at su_pthread_port.c:324
arg = (struct clone_args *) 0x0
task = {{sut_port = 0x6dec20, sut_root = 0x6df950}}
zap = 1
#12 0x00002afbfaa66087 in start_thread () from /lib/libpthread.so.0
No locals.
#13 0x00002afbfb765ccd in clone () from /lib/libc.so.6
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) frame 3
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
8905 assert(orq->orq_forking == original);
Current language: auto; currently c
(gdb) print orq
$3 = (nta_outgoing_t *) 0x8b1420
(gdb) print *orq
$4 = {orq_hash = 12297829382473034410, orq_agent = 0xaaaaaaaaaaaaaaaa, orq_callback = 0xaaaaaaaaaaaaaaaa, orq_magic = 0xaaaaaaaaaaaaaaaa, orq_prev = 0xaaaaaaaaaaaaaaaa, orq_next = 0xaaaaaaaaaaaaaaaa, orq_queue = 0xaaaaaaaaaaaaaaaa,
orq_rprev = 0xaaaaaaaaaaaaaaaa, orq_rnext = 0xaaaaaaaaaaaaaaaa, orq_method = -1431655766, orq_method_name = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_url = 0xaaaaaaaaaaaaaaaa, orq_from = 0xaaaaaaaaaaaaaaaa,
orq_to = 0xaaaaaaaaaaaaaaaa, orq_tag = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_cseq = 0xaaaaaaaaaaaaaaaa, orq_call_id = 0xaaaaaaaaaaaaaaaa, orq_request = 0xaaaaaaaaaaaaaaaa, orq_response = 0xaaaaaaaaaaaaaaaa,
orq_sent = {tv_sec = 12297829382473034410, tv_usec = 12297829382473034410}, orq_delay = 2863311530, orq_retry = 2863311530, orq_timeout = 2863311530, orq_interval = 43690, orq_status = 43690, orq_retries = 170 '�', orq_default = 0,
orq_inserted = 1, orq_resolved = 0, orq_prepared = 1, orq_canceled = 0, orq_terminated = 1, orq_destroyed = 0, orq_completed = 1, orq_delayed = 0, orq_stripped_uri = 1, orq_user_tport = 0, orq_try_tcp_instead = 1,
orq_try_udp_instead = 0, orq_reliable = 1, orq_ack_error = 0, orq_user_via = 1, orq_stateless = 0, orq_pass_100 = 1, orq_sigcomp_new = 0, orq_sigcomp_zap = 1, orq_must_100rel = 0, orq_timestamp = 1, orq_100rel = 0,
orq_resolver = 0xaaaaaaaaaaaaaaaa, orq_res_order = 2863311530, orq_route = 0xaaaaaaaaaaaaaaaa, orq_tpn = {{tpn_proto = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
tpn_canon = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_host = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_port = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
tpn_comp = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_ident = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>}}, orq_scheme = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
orq_tport = 0xaaaaaaaaaaaaaaaa, orq_cc = 0xaaaaaaaaaaaaaaaa, orq_tags = 0xaaaaaaaaaaaaaaaa, orq_pending = -1431655766, orq_branch = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
orq_via_branch = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_status2b = 0xaaaaaaaaaaaaaaaa, orq_cancel = 0xaaaaaaaaaaaaaaaa, orq_forking = 0xaaaaaaaaaaaaaaaa, orq_forks = 0xaaaaaaaaaaaaaaaa, orq_rseq = 752}
freeswitch: nta.c:8905: outgoing_terminate_invite: Assertion `orq->orq_forking == original' failed.
(gdb) bt
#0 0x00002afbfb6d1165 in raise () from /lib/libc.so.6
#1 0x00002afbfb6d24de in abort () from /lib/libc.so.6
#2 0x00002afbfb6ca49f in __assert_fail () from /lib/libc.so.6
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
#4 0x00002aaaaba540c6 in outgoing_timer_dk (q=0x7c9950, timer=0x2aaaabb37244 "D", now=2008411129) at nta.c:8886
#5 0x00002aaaaba538ba in outgoing_timer (sa=0x7c9610) at nta.c:8697
#6 0x00002aaaaba387ef in agent_timer (rm=0x2aaab8078f90, timer=0x6d76e0, agent=0x7c9610) at nta.c:1237
#7 0x00002aaaabae45ed in su_timer_expire (timers=0x6dec68, timeout=0x40257008, now={tv_sec = 3455162117, tv_usec = 113368}) at su_timer.c:575
#8 0x00002aaaabadd01e in su_base_port_run (self=0x6dec20) at su_base_port.c:339
#9 0x00002aaaabacdd71 in su_port_run (self=0x6dec20) at su_port.h:326
#10 0x00002aaaabacdd49 in su_root_run (self=0x6df950) at su_root.c:819
#11 0x00002aaaabadbdca in su_pthread_port_clone_main (varg=0x4030ab30) at su_pthread_port.c:324
#12 0x00002afbfaa66087 in start_thread () from /lib/libpthread.so.0
#13 0x00002afbfb765ccd in clone () from /lib/libc.so.6
#14 0x0000000000000000 in ?? ()
(gdb) bt full
#0 0x00002afbfb6d1165 in raise () from /lib/libc.so.6
No symbol table info available.
#1 0x00002afbfb6d24de in abort () from /lib/libc.so.6
No symbol table info available.
#2 0x00002afbfb6ca49f in __assert_fail () from /lib/libc.so.6
No symbol table info available.
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
orq = (nta_outgoing_t *) 0x8b1420
__PRETTY_FUNCTION__ = "outgoing_terminate_invite"
#4 0x00002aaaaba540c6 in outgoing_timer_dk (q=0x7c9950, timer=0x2aaaabb37244 "D", now=2008411129) at nta.c:8886
orq = (nta_outgoing_t *) 0x695090
terminated = 1
#5 0x00002aaaaba538ba in outgoing_timer (sa=0x7c9610) at nta.c:8697
now = 2008411129
orq = (nta_outgoing_t *) 0x0
rq = {{q_tail = 0x40256e28, q_head = 0x0, q_length = 0, q_timeout = 0}}
retransmitted = 0
terminated = 0
timeout = 0
destroyed = 46912513043680
total = 1
trying = 0
pending = 0
completed = 1
__PRETTY_FUNCTION__ = "outgoing_timer"
#6 0x00002aaaaba387ef in agent_timer (rm=0x2aaab8078f90, timer=0x6d76e0, agent=0x7c9610) at nta.c:1237
stamp = {tv_sec = 3455162117, tv_usec = 113371}
now = 2008411129
next = 7207248
latest = 0
__PRETTY_FUNCTION__ = "agent_timer"
#7 0x00002aaaabae45ed in su_timer_expire (timers=0x6dec68, timeout=0x40257008, now={tv_sec = 3455162117, tv_usec = 113368}) at su_timer.c:575
t = (su_timer_t *) 0x6d76e0
f = (su_timer_f) 0x2aaaaba38758 <agent_timer>
n = 0
__PRETTY_FUNCTION__ = "su_timer_expire"
#8 0x00002aaaabadd01e in su_base_port_run (self=0x6dec20) at su_base_port.c:339
now = {tv_sec = 3455162117, tv_usec = 113368}
tout = 15000
tout2 = 0
__PRETTY_FUNCTION__ = "su_base_port_run"
#9 0x00002aaaabacdd71 in su_port_run (self=0x6dec20) at su_port.h:326
base = (su_virtual_port_t *) 0x6dec20
#10 0x00002aaaabacdd49 in su_root_run (self=0x6df950) at su_root.c:819
__PRETTY_FUNCTION__ = "su_root_run"
#11 0x00002aaaabadbdca in su_pthread_port_clone_main (varg=0x4030ab30) at su_pthread_port.c:324
arg = (struct clone_args *) 0x0
task = {{sut_port = 0x6dec20, sut_root = 0x6df950}}
zap = 1
#12 0x00002afbfaa66087 in start_thread () from /lib/libpthread.so.0
No locals.
#13 0x00002afbfb765ccd in clone () from /lib/libc.so.6
No symbol table info available.
#14 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) frame 3
#3 0x00002aaaaba5415c in outgoing_terminate_invite (original=0x695090) at nta.c:8905
8905 assert(orq->orq_forking == original);
Current language: auto; currently c
(gdb) print orq
$3 = (nta_outgoing_t *) 0x8b1420
(gdb) print *orq
$4 = {orq_hash = 12297829382473034410, orq_agent = 0xaaaaaaaaaaaaaaaa, orq_callback = 0xaaaaaaaaaaaaaaaa, orq_magic = 0xaaaaaaaaaaaaaaaa, orq_prev = 0xaaaaaaaaaaaaaaaa, orq_next = 0xaaaaaaaaaaaaaaaa, orq_queue = 0xaaaaaaaaaaaaaaaa,
orq_rprev = 0xaaaaaaaaaaaaaaaa, orq_rnext = 0xaaaaaaaaaaaaaaaa, orq_method = -1431655766, orq_method_name = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_url = 0xaaaaaaaaaaaaaaaa, orq_from = 0xaaaaaaaaaaaaaaaa,
orq_to = 0xaaaaaaaaaaaaaaaa, orq_tag = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_cseq = 0xaaaaaaaaaaaaaaaa, orq_call_id = 0xaaaaaaaaaaaaaaaa, orq_request = 0xaaaaaaaaaaaaaaaa, orq_response = 0xaaaaaaaaaaaaaaaa,
orq_sent = {tv_sec = 12297829382473034410, tv_usec = 12297829382473034410}, orq_delay = 2863311530, orq_retry = 2863311530, orq_timeout = 2863311530, orq_interval = 43690, orq_status = 43690, orq_retries = 170 '�', orq_default = 0,
orq_inserted = 1, orq_resolved = 0, orq_prepared = 1, orq_canceled = 0, orq_terminated = 1, orq_destroyed = 0, orq_completed = 1, orq_delayed = 0, orq_stripped_uri = 1, orq_user_tport = 0, orq_try_tcp_instead = 1,
orq_try_udp_instead = 0, orq_reliable = 1, orq_ack_error = 0, orq_user_via = 1, orq_stateless = 0, orq_pass_100 = 1, orq_sigcomp_new = 0, orq_sigcomp_zap = 1, orq_must_100rel = 0, orq_timestamp = 1, orq_100rel = 0,
orq_resolver = 0xaaaaaaaaaaaaaaaa, orq_res_order = 2863311530, orq_route = 0xaaaaaaaaaaaaaaaa, orq_tpn = {{tpn_proto = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
tpn_canon = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_host = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_port = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
tpn_comp = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, tpn_ident = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>}}, orq_scheme = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
orq_tport = 0xaaaaaaaaaaaaaaaa, orq_cc = 0xaaaaaaaaaaaaaaaa, orq_tags = 0xaaaaaaaaaaaaaaaa, orq_pending = -1431655766, orq_branch = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>,
orq_via_branch = 0xaaaaaaaaaaaaaaaa <Address 0xaaaaaaaaaaaaaaaa out of bounds>, orq_status2b = 0xaaaaaaaaaaaaaaaa, orq_cancel = 0xaaaaaaaaaaaaaaaa, orq_forking = 0xaaaaaaaaaaaaaaaa, orq_forks = 0xaaaaaaaaaaaaaaaa, orq_rseq = 752}
/b