I am trying implement the drouting... a have 3 gateway in dr_gateways table... and only one rule... gw_list=3,2,1
In the third attempt, opensips crash.... follows the configuration and mysql tables!
route{
...
#drouting
if(!do_routing("0")){
send_reply("503", "No rules found matching the URI prefix");
exit;
}
#flag 11 . flag the transaction to handle the failure route
setflag(11);
route(1);
...
}
route[1] {
# for INVITEs enable some additional helper routes
if (is_method("INVITE")) {
t_on_branch("2");
t_on_reply("2");
t_on_failure("1");
}
if (!t_relay()) {
sl_reply_error();
};
exit;
}
failure_route[1] {
xlog("FAILURE_ROUTE[1]: M=$rm RURI=$ru F=$fu T=$tu IP=$si STS=$rs RZ=$rr\n");
if (t_was_cancelled()) {
exit;
}
#drouting
if(isflagset(11)){
if (use_next_gw()) {
#xlog ("next gateway $ru \n");
t_on_failure("1");
t_relay();
exit;
} else {
t_reply("503", "Service not available, no more gateways");
exit;
}
}
}
Feb 10 09:29:58 tesla /sbin/opensips[16358]: ONREPLY_ROUTE[2]: M=INVITE RURI=<null> F=sip:3534716644@200.251.137.109 T=sip:7777%23553588023317@200.251.137.110:5060 IP
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG™️t_should_relay_response: T_code=183, new_code=486
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG™️t_pick_branch: picked branch 1, code 486 (prio=686)
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG™️is_3263_failure: dns-failover test: branch=1, last_recv=486, flags=2
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG™️run_trans_callbacks: trans=0xb59803bc, callback type 64, id 1 entered
Feb 10 09:29:58 tesla /sbin/opensips[16358]: FAILURE_ROUTE[1]: M=INVITE RURI=sip:553588023317@200.182.99.124 F=sip:3534716644@200.251.137.109 T=sip:7777#553588023317@
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG:drouting:use_next_gw: new RURI set to <sip:0023#553588023317@200.155.77.57>
Feb 10 09:29:58 tesla /sbin/opensips[16358]: DBG:core:_shm_resize: resize(0) called
Feb 10 09:29:58 tesla /sbin/opensips[16350]: INFO:core:handle_sigs: child process 16358 exited by a signal 11
Feb 10 09:29:58 tesla /sbin/opensips[16350]: INFO:core:handle_sigs: core was generated
Feb 10 09:29:58 tesla /sbin/opensips[16350]: INFO:core:handle_sigs: terminating due to SIGCHLD
Feb 10 09:29:58 tesla /sbin/opensips[16370]: INFO:core:sig_usr: signal 15 received
Feb 10 09:29:58 tesla /sbin/opensips[16372]: INFO:core:sig_usr: signal 15 received
Feb 10 09:29:58 tesla /sbin/opensips[16373]: INFO:core:sig_usr: signal 15 received
mysql> select * from dr_gateways;
+------+------+----------------+-------+------------+-------+------------+------------------+
| gwid | type | address | strip | pri_prefix | attrs | probe_mode | description |
+------+------+----------------+-------+------------+-------+------------+------------------+
| 1 | 0 | 200.155.77.57 | 0 | 0023# | | 0 | |
| 2 | 0 | 200.182.99.124 | 0 | | | 0 | |
| 3 | 0 | 72.85.25.12 | 0 | 5580# | | 0 | CLI |
+------+------+----------------+-------+------------+-------+------------+------------------+
mysql> select * from dr_rules;
+--------+---------+--------+---------+----------+---------+--------+-------+-------------+
| ruleid | groupid | prefix | timerec | priority | routeid | gwlist | attrs | description |
+--------+---------+--------+---------+----------+---------+--------+-------+-------------+
| 1 | 0 | 55 | | 1 | 0 | 3,2,1 | | Brasil |
+--------+---------+--------+---------+----------+---------+--------+-------+-------------+
More informations.... gdb /sbin/opensips core.opensips.sig11.19278
Program terminated with signal 11, Segmentation fault.
[New process 19278]
#0 0xb7ae1264 in pre_print_uac_request (t=0xb5b370d8, branch=2, request=0xb7b10f80) at t_fwd.c:176
176 memcpy( t->uac[branch].duri.s,request->dst_uri.s,request->dst_uri.len);
(gdb) bt
#0 0xb7ae1264 in pre_print_uac_request (t=0xb5b370d8, branch=2, request=0xb7b10f80) at t_fwd.c:176
#1 0xb7ae2390 in add_uac (t=0xb5b370d8, request=0x3fffffff, uri=0xbfd74e2c, next_hop=0xbfd74e34, path=0xb7b112a4, proxy=0x0) at t_fwd.c:400
#2 0xb7ae37d4 in t_forward_nonack (t=0xb5b370d8, p_msg=0xb7b10f80, proxy=0x0) at t_fwd.c:645
#3 0xb7af1cf9 in w_t_relay (p_msg=0xb7b10f80, proxy=0x0, flags=<value optimized out>) at tm.c:1132
#4 0x0805737b in do_action (a=0x81e3bf4, msg=0xb7b10f80) at action.c:1195
#5 0x0805b3d7 in run_action_list (a=0x81e3afc, msg=0xb7b10f80) at action.c:140
#6 0x08059cf3 in do_action (a=0x81e3f48, msg=0xb7b10f80) at action.c:819
#7 0x0805b3d7 in run_action_list (a=0x81e3f48, msg=0xb7b10f80) at action.c:140
#8 0x08059cf3 in do_action (a=0x81e3fb4, msg=0xb7b10f80) at action.c:819
#9 0x0805b3d7 in run_action_list (a=0x81e353c, msg=0xb7b10f80) at action.c:140
#10 0x0805b7b0 in run_top_route (a=0x81e353c, msg=0xb7b10f80) at action.c:120
#11 0xb7b0041e in t_should_relay_response (Trans=0xb5b370d8, new_code=486, branch=1, should_store=0xbfd75ad4, should_relay=0xbfd75ad8, cancel_bitmap=0xbfd75bd0,
reply=0x81e9578) at t_reply.c:621
#12 0xb7b0277c in relay_reply (t=0xb5b370d8, p_msg=0x81e9578, branch=1, msg_status=486, cancel_bitmap=0xbfd75bd0) at t_reply.c:1133
#13 0xb7b03ce0 in reply_received (p_msg=0x81e9578) at t_reply.c:1504
#14 0x0806bad5 in forward_reply (msg=0x81e9578) at forward.c:559
#15 0x080a3697 in receive_msg (
buf=0x81b1180 "SIP/2.0 486 Busy here\r\nVia: SIP/2.0/UDP 200.251.137.110;branch=z9hG4bKe7fe.4f7376f1.1\r\nVia: SIP/2.0/UDP 200.251.137.109:5060;received=200.251.137.109;branch=z9hG4bK1cb6ca58;rport=5060\r\nRecord-Route: <"..., len=535, rcv_info=0xbfd75cd8) at receive.c:200
#16 0x080fa52e in udp_rcv_loop () at udp_server.c:492
#17 0x080747a3 in main (argc=3, argv=0xbfd75e74) at main.c:824
Hi,
Can you please investigate the core file with gdb?
Run 'gdb path_to_opensips_exec' 'path_to_core'' . Then run 'bt' inside and send the outout.
Regards,
Anca
Hi Anca,
.... follows....
(gdb) bt
#0 0xb7ae1264 in pre_print_uac_request (t=0xb5b370d8, branch=2, request=0xb7b10f80) at t_fwd.c:176
#1 0xb7ae2390 in add_uac (t=0xb5b370d8, request=0x3fffffff, uri=0xbfd74e2c, next_hop=0xbfd74e34, path=0xb7b112a4, proxy=0x0) at t_fwd.c:400
#2 0xb7ae37d4 in t_forward_nonack (t=0xb5b370d8, p_msg=0xb7b10f80, proxy=0x0) at t_fwd.c:645
#3 0xb7af1cf9 in w_t_relay (p_msg=0xb7b10f80, proxy=0x0, flags=<value optimized out>) at tm.c:1132
#4 0x0805737b in do_action (a=0x81e3bf4, msg=0xb7b10f80) at action.c:1195
#5 0x0805b3d7 in run_action_list (a=0x81e3afc, msg=0xb7b10f80) at action.c:140
#6 0x08059cf3 in do_action (a=0x81e3f48, msg=0xb7b10f80) at action.c:819
#7 0x0805b3d7 in run_action_list (a=0x81e3f48, msg=0xb7b10f80) at action.c:140
#8 0x08059cf3 in do_action (a=0x81e3fb4, msg=0xb7b10f80) at action.c:819
#9 0x0805b3d7 in run_action_list (a=0x81e353c, msg=0xb7b10f80) at action.c:140
#10 0x0805b7b0 in run_top_route (a=0x81e353c, msg=0xb7b10f80) at action.c:120
#11 0xb7b0041e in t_should_relay_response (Trans=0xb5b370d8, new_code=486, branch=1, should_store=0xbfd75ad4, should_relay=0xbfd75ad8, cancel_bitmap=0xbfd75bd0,
reply=0x81e9578) at t_reply.c:621
#12 0xb7b0277c in relay_reply (t=0xb5b370d8, p_msg=0x81e9578, branch=1, msg_status=486, cancel_bitmap=0xbfd75bd0) at t_reply.c:1133
#13 0xb7b03ce0 in reply_received (p_msg=0x81e9578) at t_reply.c:1504
#14 0x0806bad5 in forward_reply (msg=0x81e9578) at forward.c:559
#15 0x080a3697 in receive_msg (
buf=0x81b1180 "SIP/2.0 486 Busy here\r\nVia: SIP/2.0/UDP 200.251.137.110;branch=z9hG4bKe7fe.4f7376f1.1\r\nVia: SIP/2.0/UDP 200.251.137.109:5060;received=200.251.137.109;branch=z9hG4bK1cb6ca58;rport=5060\r\nRecord-Route: <"..., len=535, rcv_info=0xbfd75cd8) at receive.c:200
#16 0x080fa52e in udp_rcv_loop () at udp_server.c:492
#17 0x080747a3 in main (argc=3, argv=0xbfd75e74) at main.c:824
In GDB, frame 0, could you please print:
branch
request->dst_uri
Regards,
Bogdan
PS : can you reproduce this crash ?