Hi guys,
I’m getting ready to switch to using opensips 2.4 but as soon as i put
traffic on it (like 3 calls, not a lot) it crashed.
it happened twice - once when I didn’t have the dump cores on, so I
turned it on, then started and it crashed almost immediately after that
I thought maybe it was because it did a insert on my postgres DB which
doesn’t happen every call,
It’s really strange because when i try test calls it seems fine, but
real traffic it doesn’t’ like :(
I think it’s part of where i do lookups for limit like this tutorial:
https://www.opensips.org/Documentation/Tutorials-ConcurrentCallsLimitation
*version: opensips 2.4.2 (x86_64/linux)*
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,
F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll, sigio_rt, select.
main.c compiled on with gcc 4.9.2
Here are some relevant bits from my opensips.cfg
loadmodule "db_virtual.so"
modparam("db_virtual", "db_urls", "define debdb FAILOVER")
modparam("db_virtual", "db_urls",
"postgres://opensips:[email protected]/opensips_cazcore")
modparam("db_virtual", "db_urls",
"postgres://opensips:[email protected]/opensips_cazcore")
#### DIALOG module
loadmodule "dialog.so"
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "default_timeout", 21600) # 6 hours timeout
modparam("dialog", "db_mode", 1)
modparam("dialog", "db_update_period", 5)
#modparam("dialog",
"db_url","postgres://opensips:[email protected]/opensips_cazcore")
modparam("dialog", "db_url", "virtual://debdb")
modparam("dialog", "dialog_replication_cluster", 1)
modparam("dialog", "profile_replication_cluster", 1)
#tags for VIP handling in cluster
modparam("dialog", "dlg_sharing_tag", "vipA=MY_VIPA")
modparam("dialog", "dlg_sharing_tag", "vipB=MY_VIPB")
# ani dnis to limit calls from ani or to dnis. /b means replicated
modparam("dialog", "profiles_with_value", "dnis/b;ani/b")
*#I called the lookup like this*
route("limit_dnis",$var(limit_dnis),2);
route("limit_ani",$var(limit_ani),2);
*#The lookup route looks like this*
route[limit_dnis]
{
# first add to the profile, just to avoid "test and set" false results
set_dlg_profile("dnis/b","$param(1)");
# do the actual test - see how many calls the user has so far
get_profile_size("dnis/b","$param(1)","$var(calls)");
xlog("$ft $Ri There are $var(calls) ongoing calls to $param(1),
limit is $param(2)\n");
# check within limit
if( $var(calls)>$param(2) )
{
xlog("$ft $Ri LIMIT_DNIS [$var(calls)/$param(2)]: From:$fU
To:$param(1) Callid:$ci\n");
avp_db_query("insert into
caztel.opensips_log(event,fulltext,linenr,digits,hostname) values
('LIMIT DNIS','$ft $Ri LIMIT_DNIS [$var(calls)/$param(2)]:
From:$fU To:$param(1) Callid:$ci','$fU','$tU','MY_HOSTNAME')");
send_reply("486","DNIS LIMIT");
exit;
# terminating this call will automatically remove the call from
the profile
}
# call was added to the profile without exceeding the limit,
simply continue
}
route[limit_ani]
{
# first add to the profile, just to avoid "test and set" false results
set_dlg_profile("ani/b","$param(1)");
# do the actual test - see how many calls the user has so far
get_profile_size("ani/b","$param(1)","$var(calls_ani)");
xlog("$ft $Ri User $param(1) has $var(calls_ani) ongoing calls so
far, limit is $param(2)\n");
# check within limit
if( $var(calls_ani)>$param(2) )
{
xlog("$ft $Ri LIMIT_ANI [$var(calls_ani)/$param(2)]:
From:$param(1) To:$tU Callid:$ci\n");
avp_db_query("insert into
caztel.opensips_log(event,fulltext,linenr,digits,hostname) values
('LIMIT ANI','$ft $Ri LIMIT_ANI [$var(calls_ani)/$param(2)]:
From:$param(1) To:$tU Callid:$ci','$fU','$tU','MY_HOSTNAME')");
send_reply("486", "ANI LIMIT\n");
exit;
# terminating this call will automatically remove the call from
the profile
}
# call was added to the profile without exceeding the limit,
simply continue
}
*from the log: *
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5690]: 20138040-1546
10.10.10.109 There are 1 ongoing calls to 491232412323, limit is 2
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5690]: 20138040-1546
10.10.10.109 User 4186880000 has 1 ongoing calls so far, limit is 2
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5690]:
CRITICAL:core:sig_usr: segfault in process pid: 5690, id: 11
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5688]: 20138040-1546
10.10.10.109 Call from: caz5400. Outcarrierid = 24.
sip:[email protected] -> sip:[email protected]:5060
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5688]: 20138040-1546
10.10.10.109 There are 2 ongoing calls to 491232412323, limit is 2
Oct 24 12:21:29 CazcoreA /usr/sbin/opensips[5688]: 20138040-1546
10.10.10.109 User 4186880000 has 2 ongoing calls so far, limit is 2
Oct 24 12:21:30 CazcoreA /usr/sbin/opensips[5686]: 20138040-1546
10.10.10.109 Call from: caz5400. Outcarrierid = 24.
sip:[email protected] -> sip:[email protected]:5060
Oct 24 12:21:30 CazcoreA /usr/sbin/opensips[5686]: 20138040-1546
10.10.10.109 There are 3 ongoing calls to 491232412323, limit is 2
Oct 24 12:21:30 CazcoreA /usr/sbin/opensips[5686]: 20138040-1546
10.10.10.109 LIMIT_DNIS [3/2]: From:4186880000 To:491232412323
Callid:[email protected]
<mailto:[email protected]>
Oct 24 12:21:30 CazcoreA /usr/sbin/opensips[5749]:
CRITICAL:core:handle_worker: dead child 11 (EOF received), pid 5690
Oct 24 12:21:32 CazcoreA /usr/sbin/opensips[5678]:
INFO:core:handle_sigs: child process 5690 exited by a signal 11
Oct 24 12:21:32 CazcoreA /usr/sbin/opensips[5678]:
INFO:core:handle_sigs: core was generated
Oct 24 12:21:32 CazcoreA /usr/sbin/opensips[5678]:
INFO:core:handle_sigs: terminating due to SIGCHLD
*backtrace*
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/sbin/opensips...(no debugging symbols
found)...done.
[New LWP 5690]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/sbin/opensips -P
/run/opensips/opensips.pid -f /etc/opensips/opensips.cfg'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f5afe73b35c in fetch_dlg_value () from
/usr/lib/x86_64-linux-gnu/opensips/modules/dialog.so
(gdb) bt full
#0 0x00007f5afe73b35c in fetch_dlg_value () from
/usr/lib/x86_64-linux-gnu/opensips/modules/dialog.so
No symbol table info available.
#1 0x00007f5afe78022b in get_shtag_state () from
/usr/lib/x86_64-linux-gnu/opensips/modules/dialog.so
No symbol table info available.
#2 0x00007f5afe742a05 in get_profile_size () from
/usr/lib/x86_64-linux-gnu/opensips/modules/dialog.so
No symbol table info available.
#3 0x00007f5afda28022 in lb_route () from
/usr/lib/x86_64-linux-gnu/opensips/modules/load_balancer.so
No symbol table info available.
#4 0x00007f5afda1ef35 in ?? () from
/usr/lib/x86_64-linux-gnu/opensips/modules/load_balancer.so
No symbol table info available.
#5 0x0000000000433585 in do_action ()
No symbol table info available.
#6 0x0000000000438390 in run_action_list ()
No symbol table info available.
#7 0x0000000000462f3c in eval_expr ()
No symbol table info available.
#8 0x0000000000462b89 in eval_expr ()
No symbol table info available.
#9 0x0000000000462b33 in eval_expr ()
No symbol table info available.
#10 0x0000000000433526 in do_action ()
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#11 0x0000000000438390 in run_action_list ()
No symbol table info available.
#12 0x00000000004384ba in ?? ()
No symbol table info available.
#13 0x000000000043594b in do_action ()
No symbol table info available.
#14 0x0000000000438390 in run_action_list ()
No symbol table info available.
#15 0x0000000000436b3c in do_action ()
No symbol table info available.
#16 0x0000000000438390 in run_action_list ()
No symbol table info available.
#17 0x0000000000438648 in run_top_route ()
No symbol table info available.
#18 0x000000000043dd28 in receive_msg ()
No symbol table info available.
#19 0x000000000052e7d8 in ?? ()
No symbol table info available.
#20 0x0000000000519ad9 in udp_start_processes ()
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#21 0x000000000041c5a6 in main ()
No symbol table info available.
(gdb)
---------------------------------------------------
Jennifer Akemi Hashimoto
Caztel Communications
[email protected] <mailto:[email protected]>
905-836-5445
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users