<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 11/04/14 14:45, Jason Penton wrote:<br>
</div>
<blockquote
cite="mid:CALoGXNXE7X18R8x9WPrhzhs-Wav8SjmO98RhHQvwNx+5OwL1Zw@mail.gmail.com"
type="cite">
<div dir="ltr">yes okay - got it. I will test and analyse. <br>
</div>
</blockquote>
I meant I want to analyze before deciding to backport, but a second
analysis is never bad :-)<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<blockquote
cite="mid:CALoGXNXE7X18R8x9WPrhzhs-Wav8SjmO98RhHQvwNx+5OwL1Zw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thanks Daniel!</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, Apr 10, 2014 at 4:35 PM,
Daniel-Constantin Mierla <span dir="ltr"><<a
moz-do-not-send="true" 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>
iirc, there are several functions that script writer can
use, like t_reply_callid() from tmx. The idea is to
analyze a bit in order to detect if a forced reply may end
up in canceling some pending branches -- the reply on the
branch doesnt matter anymore and should not be considered
anymore for relaying upstream, because the script writer
already decided what to send out.<br>
<br>
Cheers,<br>
Daniel
<div>
<div class="h5"><br>
<br>
<br>
<div>On 10/04/14 13:24, Jason Penton wrote:<br>
</div>
<blockquote type="cite">
<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 moz-do-not-send="true"
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><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
moz-do-not-send="true"
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
moz-do-not-send="true"
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
moz-do-not-send="true" 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 moz-do-not-send="true" href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a>
<a moz-do-not-send="true" 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 moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" 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
moz-do-not-send="true"
href="mailto:sr-dev@lists.sip-router.org" target="_blank">sr-dev@lists.sip-router.org</a><br>
<a
moz-do-not-send="true"
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 moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" 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 moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" 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 moz-do-not-send="true" href="http://www.asipto.com" target="_blank">http://www.asipto.com</a>
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" 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 class="moz-signature" cols="72">--
Daniel-Constantin Mierla - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a></pre>
</body>
</html>