<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<tt>Hi, Nick!<br>
<br>
I see you are using pthreads locks, correct? Can you switch the
locking mechanism to FUTEX and check if it behaves differently?<br>
<br>
Best regards,</tt>
<pre class="moz-signature" cols="72">Răzvan Crainea
OpenSIPS Solutions
<a class="moz-txt-link-abbreviated" href="http://www.opensips-solutions.com">www.opensips-solutions.com</a></pre>
<div class="moz-cite-prefix">On 03/06/2017 06:59 PM, Maxim Sobolev
wrote:<br>
</div>
<blockquote
cite="mid:CAH7qZfvGh4cyrOwMBCjDyFneSSF2ve-j4SwKWE4d0RHh+C3EaQ@mail.gmail.com"
type="cite">
<div dir="ltr">The code leading to a crash is following:
<div><br>
</div>
<div>
<div> /* lock reply processing to determine how to
proceed reliably */</div>
<div> LOCK_REPLIES( t );</div>
</div>
<div><br>
</div>
<div>We also see a lot of messages like this before the crash:</div>
<div><br>
</div>
<div>
<div>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..</div>
</div>
</div>
</blockquote>
...<br>
<blockquote
cite="mid:CAH7qZfvGh4cyrOwMBCjDyFneSSF2ve-j4SwKWE4d0RHh+C3EaQ@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>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..</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Mon, Mar 6, 2017 at 8:51 AM, Maxim
Sobolev <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:sobomax@sippysoft.com" target="_blank">sobomax@sippysoft.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">
<div class="m_-8838871439651548590gmail_signature">
<div dir="ltr">Hi folks,</div>
<div dir="ltr"><br>
</div>
<div>We have observed the following crash in the
OpenSIPS:</div>
<div><br>
</div>
<div>
<div>$ sudo gdb712 /usr/local/sbin/opensips
~/opensips.27455.core</div>
<div>GNU gdb (GDB) 7.12 [GDB v7.12 for FreeBSD]</div>
<div>Core was generated by `opensips'.<br>
</div>
<div>Program terminated with signal SIGABRT, Aborted.</div>
<div>#0 0x0000000800ccf39a in thr_kill () from
/lib/libc.so.7</div>
<div>[Current thread is 1 (LWP 100588)]</div>
<div>(gdb) bt</div>
<div>#0 0x0000000800ccf39a in thr_kill () from
/lib/libc.so.7</div>
<div>#1 0x0000000800ccf386 in raise () from
/lib/libc.so.7</div>
<div>#2 0x0000000800ccf309 in abort () from
/lib/libc.so.7</div>
<div>#3 0x00000008009fe95a in ?? () from
/lib/libthr.so.3</div>
<div>#4 0x00000008009fa046 in ?? () from
/lib/libthr.so.3</div>
<div>#5 0x0000000801a148e1 in _lock (s=0x805003800)
at lock.h:100</div>
<div>#6 0x0000000801a14e84 in final_response_handler
(fr_tl=0x805002078) at timer.c:389</div>
<div>#7 0x0000000801a1664a in timer_routine
(ticks=15362, set=0x0) at timer.c:1066</div>
<div>#8 0x00000000004544dd in handle_timer_job () at
timer.c:567</div>
<div>#9 0x0000000000519920 in handle_io
(fm=0x80142e670, idx=1, event_type=1) at
net/net_udp.c:265</div>
<div>#10 0x00000000005187ca in io_wait_loop_kqueue
(h=0x8b6300 <_worker_io>, t=1, repeat=0) at
net/../io_wait_loop.h:281</div>
<div>#11 0x0000000000519bed in udp_rcv_loop
(si=0x80141ff98) at net/net_udp.c:308</div>
<div>#12 0x000000000051a5c0 in udp_start_processes
(chd_rank=0x7d56c8 <chd_rank>,
startup_done=0x0) at net/net_udp.c:448</div>
<div>#13 0x00000000004318a5 in main_loop () at
main.c:731</div>
<div>#14 0x0000000000433c79 in main (argc=9,
argv=0x7fffffffe950) at main.c:1271</div>
</div>
<div><br>
</div>
<div>The opensips configuration is:</div>
<div><br>
</div>
<div>
<div> if (method == "INVITE") {</div>
<div> if (!t_newtran()) {</div>
<div> sl_reply_error();<br>
</div>
<div> exit;</div>
<div> };</div>
<div> };</div>
</div>
<div>
<div>
<div> # Do strict routing if pre-loaded route
headers present</div>
<div> if (loose_route() && !(method
== "INVITE")) {</div>
<div> t_relay();</div>
<div> exit;</div>
<div> };</div>
</div>
<div> if ((!lookup("location") &&
method == "INVITE" && uri == myself) || uri
== myself) {</div>
<div> sl_send_reply("404", "Not
Found");</div>
<div> exit;</div>
<div> };</div>
<div> if (method == "INVITE") {</div>
<div> record_route();</div>
<div> };</div>
<div> if (!t_relay()) {</div>
<div> sl_reply_error();</div>
<div> };</div>
</div>
<div><br>
</div>
<div>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.</div>
<div><br>
</div>
<div>-Max</div>
<br>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</body>
</html>