[sr-dev] Possible bug in RLS module

Peter Dunkley peter.dunkley at crocodile-rcs.com
Mon Apr 4 15:39:36 CEST 2011


Hello Daniel,

I have looked into the new error message.  I now get:

    7(21352) ERROR: rls [resource_notify.c:250]: record not found

This looks very similar to the previous issue.  What appears to be
happening is that the RLS is successfully un-subscribing from the
presence module with a SUBSCRIBE that looks like:


        SUBSCRIBE sip:alice at crocodile-rcs.com SIP/2.0
        Via: SIP/2.0/UDP
        46.38.172.248;branch=z9hG4bKf89b.b9ec2180000000000000000000000000.0
        To: sip:alice at crocodile-rcs.com
        From:
        sip:bob at crocodile-rcs.com;tag=533cb9e91f4b999cf76861cbb9ed54ed-8c1c
        CSeq: 10 SUBSCRIBE
        Call-ID: 6c60e3f8-21440 at 127.0.0.1
        Content-Length: 0
        User-Agent: Crocodile SuperNode 1.1
        Max-Forwards: 70
        Event: presence
        Contact: <sip:rls at 46.38.172.248:5060>
        Expires: 0
        Supported: eventlist
        Accept: application/pidf+xml, application/rlmi+xml,
        application/watcherinfo+xml, multipart/related


After accepting (with 202) this SUBSCRIBE the presence module tries to
send a NOTIFY back to the RLS module:


        NOTIFY sip:rls at 46.38.172.248:5060 SIP/2.0
        Via: SIP/2.0/UDP
        127.0.0.1;branch=z9hG4bK7a28.7240a060000000000000000000000000.0
        To:
        sip:bob at crocodile-rcs.com;tag=533cb9e91f4b999cf76861cbb9ed54ed-8c1c
        From:
        sip:alice at crocodile-rcs.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-5cd7
        CSeq: 1 NOTIFY
        Call-ID: 6c60e3f8-21440 at 127.0.0.1
        Content-Length: 0
        User-Agent: Crocodile SuperNode 1.1
        Max-Forwards: 70
        Event: presence
        Contact: <sip:127.0.0.1:5060;transport=udp>
        Subscription-State: terminated;reason=timeout

This NOTIFY is passed into the RLS module using rls_handle_notify() and
the error message from above appears in the log file.  There is no final
response sent to the NOTIFY so the error message appears repeatedly for
32 seconds until the presence module times out.

I think there are two issues here:

      * After completing the unSUBSCRIBE the RLS module removes the
        dialog from the hash table.  This means that the NOTIFY from
        presence doesn't match a dialog - hence the error message.
      * rls_handle_notify() does not send an Fxx (or at least does not
        in this case) when it receives a validly formed NOTIFY that
        still causes an error.


Can you suggest a work-around?

Regards,

Peter


On Sun, 2011-04-03 at 18:33 +0100, Peter Dunkley wrote:

> Hi Daniel,
> 
> I've tried out the latest branch 3.1 and the issue I reported is fixed.  I
> am now getting a different error message - but this may have something to
> do with the other changes to RLS that I am working on.
> 
> I'll investigate this further and let you know what I find.
> 
> Thanks for your help.
> 
> Peter
> 
> > Hi Peter,
> >
> > can you fetch the latest git of branch 3.1 and try again the scenario? I
> > broke the update_rlsubs() in two functions, so that deletion from hash
> > table can be done later, after sending the notify requests.
> >
> > Let me know if it work now for you.
> >
> > Thanks,
> > Daniel
> >
> 
> 


-- 
Peter Dunkley
Technical Director
Crocodile RCS Ltd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20110404/d2ff91d0/attachment.htm>


More information about the sr-dev mailing list