<div dir="ltr"><div><div>Hi Vicente,<br><br></div>It works now. Thank you for the patch. In which version will we have this one integrated ?<br><br><br></div>Regards,<div class="gmail_extra"><br><br><div class="gmail_quote">
On Thu, Nov 28, 2013 at 11:36 AM, Vicente Hernando <span dir="ltr"><<a href="mailto:vhernando@systemonenoc.com" target="_blank">vhernando@systemonenoc.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">
<div>Hello,<br>
<br>
could you test this patch and confirm the bug has disappeared?<br>
<br>
Thanks,<br>
Vicente.<div><div><br>
<br>
On 11/28/2013 11:10 AM, Tuan Viet Nguyen wrote:<br>
</div></div></div><div><div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>Hi Vicente,<br>
<br>
</div>
Thank you for your quick reply.<br>
<br>
</div>
I'm ready to retest the patch.<br>
<br>
</div>
Regards,<br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Thu, Nov 28, 2013 at 11:07 AM,
Vicente Hernando <span dir="ltr"><<a href="mailto:vhernando@systemonenoc.com" target="_blank">vhernando@systemonenoc.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">
<div>Hello,<br>
<br>
I think you have discovered a bug I made using
variadic functions.<br>
<br>
Very soon I gonna send a patch to correct it.<br>
<br>
<br>
Thanks,<br>
Vicente.
<div>
<div><br>
<br>
On 11/28/2013 10:14 AM, Tuan Viet Nguyen wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">Hello Vicente,<br>
<div class="gmail_extra"><br>
</div>
<div class="gmail_extra">Thank you for your
reply, you'll find my answer below<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Thu, Nov 28, 2013
at 12:03 AM, Vicente Hernando <span dir="ltr"><<a href="mailto:vhernando@systemonenoc.com" target="_blank">vhernando@systemonenoc.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hello,<br>
<br>
also full steps to crash kamailio and
reproduce the error would be good.</div>
</div>
</blockquote>
<div><br>
</div>
<div>Here is the architecture<br>
<br>
</div>
<div>A <--> Asterisk <-->
Kamailio 1 <---> kamailio2 <---
ISP---> mobile<br>
<br>
</div>
<div>Kamailio 1 & 2 are connected to a
local redis server<br>
</div>
<div>1/ I restarted the redis server<br>
</div>
<div>2/ From the mobile I made a call to A
then cancelled it. In the script of
kamailio1, if a call has missed or failed,
it sends a message to the redis. And in
this case, it crashes<br>
<br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>
<div><br>
<br>
<br>
On 11/27/2013 11:35 PM,
Daniel-Constantin Mierla wrote:<br>
</div>
</div>
<div>
<blockquote type="cite"> Hello,<br>
<br>
can you give the full output for 'bt
full' with gdb on the core file? You
gave only partial list of the
frames, not being enough to see the
execution trace.<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<div>On 11/27/13 6:52 PM, Tuan Viet
Nguyen wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>Hello,<br>
<br>
</div>
I'll try to shut down
the redis server to test
the behavior of kamailio
and it has crashed if a
call is received and
then cancelled. <br>
<br>
<b>1/The kamailio
version is 4.0.4</b><br>
<br>
</div>
<div><b>2/ Kamailio log </b><br>
</div>
<div>/usr/local/sbin/kamailio[25333]:
ERROR: ndb_redis
[redis_client.c:364]:
redisc_exec(): Redis
error: Server closed the
connection<br>
/usr/local/sbin/kamailio[25361]:
: <core>
[pass_fd.c:293]:
receive_fd(): ERROR:
receive_fd: EOF on 13<br>
/usr/local/sbin/kamailio[25328]:
ALERT: <core>
[main.c:788]:
handle_sigs(): child
process 25333 exited by
a signal 11<br>
/usr/local/sbin/kamailio[25328]:
ALERT: <core>
[main.c:791]:
handle_sigs(): core was
generated<br>
<br>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</blockquote>
</div>
I assume you disconnect redis server and
don't reconnect it. It is that correct?<br>
<br>
Then this line is an error but it should
recover from that. I probably should set
this as a warning instead an error.
<div><br>
/usr/local/sbin/kamailio[25333]:
ERROR: ndb_redis [redis_client.c:364]:
redisc_exec(): Redis error: Server
closed the connection<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Yes, it has been restarted<br>
<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> <br>
</div>
<div>
<blockquote type="cite">
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div> </div>
<u><b>3/ Interesting
information in the
core</b></u><br>
#3 0x00007fc79412893d in
redisvCommand
(c=0x64657461, format=0x9
<Address 0x9 out of
bounds>, ap=0x30,
ap@entry=0x7fff0ff56aa8)
at hiredis.c:1304<br>
No locals.<br>
#4 0x00007fc794341713 in
redisc_exec
(srv=srv@entry=0x7fff0ff56be0,
res=res@entry=0x7fff0ff56c00,
cmd=cmd@entry=0x7fff0ff56bf0)
at redis_client.c:368<br>
rsrv =
0x7fc794565150<br>
rpl =
0x7fc7946fab70<br>
c = 0 '\000'<br>
ap = {{gp_offset =
48, fp_offset = 48,
overflow_arg_area =
0x7fff0ff56bb0,
reg_save_area =
0x7fff0ff56ac0}}<br>
__FUNCTION__ =
"redisc_exec"<br>
#5 0x00007fc79433b781 in
w_redis_cmd5
(msg=<optimized
out>,
ssrv=<optimized
out>,
scmd=<optimized
out>,
sargv1=<optimized
out>,
sargv2=0x7fc7946f7bf0
"p\243_\224\307\177",
sres=0x7fc7946f7c50 "
\253_\224\307\177") at
ndb_redis_mod.c:250<br>
s = {{s =
0x7fc7945fb300
"kamailio_redis", len =
14}, {s = 0x7fc7945f5f50
"PUBLISH %s %s", len =
13}, {s = 0x7fc7945fab20
"r", len = 1}}<br>
arg1 = {s =
0x7fc7945f5f80
"notification", len = 12}<br>
arg2 = {<br>
s =
0x7fc794551c60 "info
XXX"..., <br>
len = 212}<br>
c1 = 0 '\000'<br>
c2 = 0 '\000'<br>
__FUNCTION__ =
"w_redis_cmd5"<br>
<br>
<br>
</div>
</div>
</div>
</div>
</blockquote>
</blockquote>
</div>
In the source code:<br>
<br>
rpl->rplRedis =
redisvCommand(rsrv->ctxRedis,
cmd->s, ap );<br>
if(rpl->rplRedis == NULL)<br>
{<br>
/* null reply, reconnect and try
again */<br>
if(rsrv->ctxRedis->err)<br>
{<br>
LM_ERR("Redis error: %s\n",
rsrv->ctxRedis->errstr);<br>
}<br>
if(redisc_reconnect_server(rsrv)==0)<br>
{<br>
rpl->rplRedis =
redisvCommand(rsrv->ctxRedis,
cmd->s, ap);<br>
}<br>
}<br>
<br>
First redisvCommand executes but returns
nothing. Then it shows a redis error.<br>
<br>
It tries to reconnect and it manages to
connect ?? because it shows no more
errors.<br>
<br>
And then executes redisvCommand again
and crashes.<br>
<br>
If server is down it should not be able
to connect and so not to execute
redisvCommand again.<br>
</div>
</blockquote>
<div><br>
</div>
<div>According to the core, we MUST be in
this case <b>if(redisc_reconnect_server(rsrv)==0)<br>
</b></div>
<div>But I am wondering how the first
redisvCommand can succeed before the
reconnection ? (the connection kamailio1
<-> redis has already been taken
down). Does all the redis context always
there when we first call redisvCommand? <br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> <br>
<br>
May be I would get more clues with more
information.<br>
<br>
Regards,<br>
Vicente.</div>
</blockquote>
<div><br>
</div>
<div>Thank you<br>
</div>
<div>Regards,<br>
</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><br>
<br>
<blockquote type="cite">
<blockquote type="cite">
<div dir="ltr">
<div>
<div>
<div> </div>
I've found one of post that
this issue has been fixed
but it seems that it's
always the case ..<br>
<a href="http://www.mail-archive.com/search?l=sr-users@lists.sip-router.org&q=subject:%22Re%3A+%5BSR-Users%5D+ndb_redis+module+fails+after+a+while%22" target="_blank">http://www.mail-archive.com/search?l=sr-users@lists.sip-router.org&q=subject:%22Re%3A+%5BSR-Users%5D+ndb_redis+module+fails+after+a+while%22</a><br>
<br>
</div>
Do you have any idea? <br>
</div>
Thank you<br>
</div>
<br>
<fieldset></fieldset>
<br>
<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>
</pre>
</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>
<br>
<fieldset></fieldset>
<br>
<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>
</pre>
</blockquote>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br></div></div>