[OpenSIPS-Devel] Crash in OpenSIPS 2.1.4 (tm?)
Răzvan Crainea
razvan at opensips.org
Tue Mar 7 03:20:20 EST 2017
Hi, Nick!
I see you are using pthreads locks, correct? Can you switch the locking
mechanism to FUTEX and check if it behaves differently?
Best regards,
Răzvan Crainea
OpenSIPS Solutions
www.opensips-solutions.com
On 03/06/2017 06:59 PM, Maxim Sobolev wrote:
> The code leading to a crash is following:
>
> /* lock reply processing to determine how to proceed reliably */
> LOCK_REPLIES( t );
>
> We also see a lot of messages like this before the crash:
>
> Mar 6 16:41:17 jenv_1 /usr/local/sbin/opensips[27453]:
> WARNING:core:utimer_ticker: utimer task <tm-utimer> already scheduled
> for 15365200 ms (now 15365390 ms), it may overlap..
...
> Mar 6 16:41:18 jenv_1 /usr/local/sbin/opensips[27453]:
> WARNING:core:utimer_ticker: utimer task <tm-utimer> already scheduled
> for 15366070 ms (now 15366160 ms), it may overlap..
>
> On Mon, Mar 6, 2017 at 8:51 AM, Maxim Sobolev <sobomax at sippysoft.com
> <mailto:sobomax at sippysoft.com>> wrote:
>
> Hi folks,
>
> We have observed the following crash in the OpenSIPS:
>
> $ sudo gdb712 /usr/local/sbin/opensips ~/opensips.27455.core
> GNU gdb (GDB) 7.12 [GDB v7.12 for FreeBSD]
> Core was generated by `opensips'.
> Program terminated with signal SIGABRT, Aborted.
> #0 0x0000000800ccf39a in thr_kill () from /lib/libc.so.7
> [Current thread is 1 (LWP 100588)]
> (gdb) bt
> #0 0x0000000800ccf39a in thr_kill () from /lib/libc.so.7
> #1 0x0000000800ccf386 in raise () from /lib/libc.so.7
> #2 0x0000000800ccf309 in abort () from /lib/libc.so.7
> #3 0x00000008009fe95a in ?? () from /lib/libthr.so.3
> #4 0x00000008009fa046 in ?? () from /lib/libthr.so.3
> #5 0x0000000801a148e1 in _lock (s=0x805003800) at lock.h:100
> #6 0x0000000801a14e84 in final_response_handler
> (fr_tl=0x805002078) at timer.c:389
> #7 0x0000000801a1664a in timer_routine (ticks=15362, set=0x0) at
> timer.c:1066
> #8 0x00000000004544dd in handle_timer_job () at timer.c:567
> #9 0x0000000000519920 in handle_io (fm=0x80142e670, idx=1,
> event_type=1) at net/net_udp.c:265
> #10 0x00000000005187ca in io_wait_loop_kqueue (h=0x8b6300
> <_worker_io>, t=1, repeat=0) at net/../io_wait_loop.h:281
> #11 0x0000000000519bed in udp_rcv_loop (si=0x80141ff98) at
> net/net_udp.c:308
> #12 0x000000000051a5c0 in udp_start_processes (chd_rank=0x7d56c8
> <chd_rank>, startup_done=0x0) at net/net_udp.c:448
> #13 0x00000000004318a5 in main_loop () at main.c:731
> #14 0x0000000000433c79 in main (argc=9, argv=0x7fffffffe950) at
> main.c:1271
>
> The opensips configuration is:
>
> if (method == "INVITE") {
> if (!t_newtran()) {
> sl_reply_error();
> exit;
> };
> };
> # Do strict routing if pre-loaded route headers present
> if (loose_route() && !(method == "INVITE")) {
> t_relay();
> exit;
> };
> if ((!lookup("location") && method == "INVITE" && uri ==
> myself) || uri == myself) {
> sl_send_reply("404", "Not Found");
> exit;
> };
> if (method == "INVITE") {
> record_route();
> };
> if (!t_relay()) {
> sl_reply_error();
> };
>
> SIP exchange leading to this is below. It's basically case of the
> call that has been cancelled on the side A but INVITE got no
> provisional reply on side B.
>
> -Max
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/devel/attachments/20170307/17673a86/attachment.html>
More information about the Devel
mailing list