<div dir="ltr">Hey Daniel,<div><br></div><div>which reply functions are you referring to? API functions?</div><div><br></div><div>Cheers</div><div>Jason</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Apr 10, 2014 at 12:53 PM, Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    OK. I will leave it a bit in master to see if there are any new
    reports, then I will backport. I will also have to review the tm
    reply functions that can be used from config to align them to the
    new check.<br>
    <br>
    Cheers,<br>
    Daniel<div><div class="h5"><br>
    <br>
    <div>On 10/04/14 09:06, Jason Penton wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">oh excellent, I will look at it right away - was
        just getting ready to jump in myself ;)
        <div><br>
        </div>
        <div>Cheers</div>
        <div>Jason</div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On Thu, Apr 10, 2014 at 9:01 AM,
          Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span> wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> Hello Jason,<br>
              <br>
              I pushed a patch trying to fix this case, it is only on
              git master branch. Can you test it? If all goes fine, we
              can consider backporting it.<br>
              <br>
              Cheers,<br>
              Daniel
              <div>
                <div><br>
                  <br>
                  <div>On 09/04/14 23:26, Jason Penton wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">Hey Daniel,
                      <div><br>
                      </div>
                      <div>nothing extraordinary...</div>
                      <div><br>
                      </div>
                      <div>
                        <div># -- TM params --</div>
                        <div>modparam("tm", "fr_timer", 20000);</div>
                        <div>modparam("tm", "fr_inv_timer", 10000)</div>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                      <div>Cheers</div>
                      <div>Jason</div>
                    </div>
                    <div class="gmail_extra"><br>
                      <br>
                      <div class="gmail_quote">On Wed, Apr 9, 2014 at
                        10:32 PM, Jason Penton <span dir="ltr"><<a href="mailto:jason.penton@gmail.com" target="_blank">jason.penton@gmail.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">Hey Daniel,
                            <div><br>
                            </div>
                            <div>Yes I did a test with a very basic
                              config file and I am not able to
                              re-create. However, with my *complex* cfg
                              file I can re-create every time. Tomorrow
                              I will compare what is different and
                              report back... hopefully with fix ;)</div>
                            <div><br>
                            </div>
                            <div>here is bt of timer process deadlocking
                              itself:</div>
                            <div><br>
                            </div>
                            <div>
                              <div>#0  syscall () at
                                ../sysdeps/unix/sysv/linux/x86_64/syscall.S:39</div>
                              <div>#1  0x00007f5009f22004 in futex_get
                                (lock=0x7f4fc55030d8) at
                                ../../mem/../futexlock.h:123</div>
                              <div>#2  0x00007f5009f223e1 in _lock
                                (s=0x7f4fc55030d8, file=0x7f5009f90fd1
                                "t_cancel.c", function=0x7f5009f91980
                                "cancel_branch", line=250) at lock.h:99</div>
                              <div>#3  0x00007f5009f23271 in
                                cancel_branch (t=0x7f4fc5501b40,
                                branch=0, reason=0x7fff646d03a8,
                                flags=3) at t_cancel.c:250</div>
                              <div>#4  0x00007f5009f22c02 in cancel_uacs
                                (t=0x7f4fc5501b40,
                                cancel_data=0x7fff646d03a0, flags=1) at
                                t_cancel.c:123</div>
                              <div>#5  0x00007f5009f718c4 in
                                _reply_light (trans=0x7f4fc5501b40, </div>
                              <div>    buf=0x7f500a24dc68 "SIP/2.0 500
                                Server error on LIR select next
                                S-CSCF\r\nVia: SIP/2.0/UDP
                                10.0.1.167:6060;branch=z9hG4bKb7.2ae09f29ffbd0034cd6d58483053603b.1\r\nVia:

                                SIP/2.0/UDP
                                10.0.1.166:4060;branch=z9hG4bKb7.3faa03ddea80"...,
                                len=778, code=500, to_tag=0x7f500a1c7ae0
                                "c82b15d7f12ef185f95fe4945457d449-8bab",
                                to_tag_len=37, lock=0,
                                bm=0x7fff646d0b60) at t_reply.c:660</div>
                              <div>#6  0x00007f5009f7244c in _reply
                                (trans=0x7f4fc5501b40,
                                p_msg=0x7f500a1c6bc0, code=500,
                                text=0x7f500a249a48 "Server error on LIR
                                select next S-CSCF", lock=0) at
                                t_reply.c:795</div>
                              <div>#7  0x00007f5009f76436 in
                                t_reply_unsafe (t=0x7f4fc5501b40,
                                p_msg=0x7f500a1c6bc0, code=500,
                                text=0x7f500a249a48 "Server error on LIR
                                select next S-CSCF") at t_reply.c:1643</div>
                              <div>#8  0x00007f5009f57621 in w_t_reply
                                (msg=0x7f500a1c6bc0, p1=0x7f500a2497d8
                                "\340\332$\nP\177", p2=0x7f500a249870
                                "h\321$\nP\177") at tm.c:1324</div>
                              <div>#9  0x000000000041a700 in do_action
                                (h=0x7fff646d1d30, a=0x7f500a24cee8,
                                msg=0x7f500a1c6bc0) at action.c:1119</div>
                              <div>#10 0x0000000000423831 in run_actions
                                (h=0x7fff646d1d30, a=0x7f500a24cee8,
                                msg=0x7f500a1c6bc0) at action.c:1607</div>
                              <div>#11 0x000000000041a5a4 in do_action
                                (h=0x7fff646d1d30, a=0x7f500a24d478,
                                msg=0x7f500a1c6bc0) at action.c:1102</div>
                              <div>#12 0x0000000000423831 in run_actions
                                (h=0x7fff646d1d30, a=0x7f500a249148,
                                msg=0x7f500a1c6bc0) at action.c:1607</div>
                              <div>#13 0x000000000041a54e in do_action
                                (h=0x7fff646d1d30, a=0x7f500a24c500,
                                msg=0x7f500a1c6bc0) at action.c:1098</div>
                              <div>#14 0x0000000000423831 in run_actions
                                (h=0x7fff646d1d30, a=0x7f500a247a28,
                                msg=0x7f500a1c6bc0) at action.c:1607</div>
                              <div>#15 0x0000000000423fdf in
                                run_top_route (a=0x7f500a247a28,
                                msg=0x7f500a1c6bc0, c=0x0) at
                                action.c:1693</div>
                              <div>#16 0x00007f5009f73815 in
                                run_failure_handlers (t=0x7f4fc5501b40,
                                rpl=0xffffffffffffffff, code=408,
                                extra_flags=96) at t_reply.c:1061</div>
                              <div>#17 0x00007f5009f7527a in
                                t_should_relay_response
                                (Trans=0x7f4fc5501b40, new_code=408,
                                branch=1, should_store=0x7fff646d201c,
                                should_relay=0x7fff646d2018,
                                cancel_data=0x7fff646d2070, </div>
                              <div>    reply=0xffffffffffffffff) at
                                t_reply.c:1416</div>
                              <div>#18 0x00007f5009f76ede in relay_reply
                                (t=0x7f4fc5501b40,
                                p_msg=0xffffffffffffffff, branch=1,
                                msg_status=408,
                                cancel_data=0x7fff646d2070,
                                do_put_on_wait=0) at t_reply.c:1819</div>
                              <div>#19 0x00007f5009f44c88 in fake_reply
                                (t=0x7f4fc5501b40, branch=1, code=408)
                                at timer.c:354</div>
                              <div>#20 0x00007f5009f450e7 in
                                final_response_handler
                                (r_buf=0x7f4fc5501e60, t=0x7f4fc5501b40)
                                at timer.c:526</div>
                              <div> #21 0x00007f5009f4518d in
                                retr_buf_handler (ticks=260027386,
                                tl=0x7f4fc5501e80, p=0x3e8) at
                                timer.c:584</div>
                              <div>#22 0x0000000000544119 in
                                timer_list_expire (t=260027386,
                                h=0x7f4fc527cbe0, slow_l=0x7f4fc527cdf0,
                                slow_mark=0) at timer.c:894</div>
                              <div>#23 0x0000000000544418 in
                                timer_handler () at timer.c:959</div>
                              <div>#24 0x00000000005446b2 in timer_main
                                () at timer.c:998</div>
                              <div>#25 0x0000000000471ddf in main_loop
                                () at main.c:1689</div>
                            </div>
                            <div><br>
                            </div>
                          </div>
                          <div>
                            <div>
                              <div class="gmail_extra"><br>
                                <br>
                                <div class="gmail_quote">On Wed, Apr 9,
                                  2014 at 9:34 PM, Daniel-Constantin
                                  Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com" target="_blank">miconda@gmail.com</a>></span>
                                  wrote:<br>
                                  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
                                    <div bgcolor="#FFFFFF" text="#000000"> Hello,<br>
                                      <br>
                                      that should not be a very rare
                                      case and I would expect to be
                                      caught so far, anyhow ... this
                                      looks like easy to reproduce, have
                                      you tried it?<br>
                                      <br>
                                      You can have two kamailio, one
                                      relying the invite to the second,
                                      which will reply with 100, then
                                      wait for the timeout on the first
                                      instance. You can add some debug
                                      messages in the code to see if the
                                      lock is called twice.<br>
                                      <br>
                                      Cheers,<br>
                                      Daniel
                                      <div>
                                        <div><br>
                                          <br>
                                          <div>On 09/04/14 17:51, Jason
                                            Penton wrote:<br>
                                          </div>
                                        </div>
                                      </div>
                                      <blockquote type="cite">
                                        <div>
                                          <div>
                                            <div dir="ltr">Hi All,
                                              <div><br>
                                              </div>
                                              <div>I have been
                                                experiencing a deadlock
                                                when a timeout occurs on
                                                a t_relayed() INVITE.
                                                Going through the code I
                                                have noticed a possible
                                                chance of deadlock
                                                (without re-entrant
                                                enabled). Here is my
                                                thinking:</div>
                                              <div><br>
                                              </div>
                                              <div>t_should_relay_response()
                                                is called with
                                                REPLY_LOCK when the
                                                timer process fires on
                                                the fr_inv_timer (no
                                                response from the INVITE
                                                that was relayed, other
                                                than 100 provisional)
                                                and a 408 is generated.
                                                However, from within
                                                that function there are
                                                calls
                                                to run_failure_handlers()
                                                which in turn *could*
                                                try and lock the reply
                                                (viz. somebody having a
                                                t_reply() call in the
                                                cfg file - in failure
                                                route block). This would
                                                result in another lock
                                                on the same
                                                transaction's
                                                REPLY_LOCK....<br>
                                              </div>
                                              <div><br>
                                              </div>
                                              <div>Has anybody else
                                                experienced something
                                                like this?</div>
                                              <div><br>
                                              </div>
                                              <div>this is on master
                                                btw.</div>
                                              <div><br>
                                              </div>
                                              <div>Cheers</div>
                                              <div>Jason</div>
                                            </div>
                                            <br>
                                            <fieldset></fieldset>
                                            <br>
                                          </div>
                                        </div>
                                        <pre>_______________________________________________
sr-dev mailing list
<a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><span><font color="#888888">
</font></span></pre>
                                        <span><font color="#888888"> </font></span></blockquote>
                                      <span><font color="#888888"> <br>
                                          <pre cols="72">-- 
Daniel-Constantin Mierla - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a></pre>
                                        </font></span></div>
                                    <br>
_______________________________________________<br>
                                    sr-dev mailing list<br>
                                    <a href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
                                    <a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev</a><br>
                                    <br>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                  </blockquote>
                  <br>
                  <pre cols="72">-- 
Daniel-Constantin Mierla - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a></pre>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <pre cols="72">-- 
Daniel-Constantin Mierla - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a href="http://twitter.com/#!/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a></pre>
  </div></div></div>

</blockquote></div><br></div>