<div dir="ltr"><div>OK, thank you for your help, i've updated the source.<br><br></div>Regards,<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 28, 2013 at 12:36 PM, 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 Nguyen,<br>
      <br>
      I have uploaded the patch in devel, 4.0, and 4.1 versions.<br>
      <br>
      <br>
      Regards,<br>
      Vicente.<div><div class="h5"><br>
      <br>
      On 11/28/2013 12:07 PM, Tuan Viet Nguyen wrote:<br>
    </div></div></div><div><div class="h5">
    <blockquote type="cite">
      <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>
    </blockquote>
    <br>
  </div></div></div>

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