< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate-users] Always "waiting for usages to be deleted (3)" during resip shutdown after deregistration and un-subscription


Kok Meng,

From the logs there are 5 usages before shutdown:
DEBUG | 20090731-024315.830 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:47 | Shutdown waiting for all usages to be deleted (5)
DEBUG | 20090731-024315.833 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:51 | 1 -> AppDialogSet 1
DEBUG | 20090731-024315.836 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:51 | 2 -> ClientRegistration sip:225@xxxxxxx
DEBUG | 20090731-024315.839 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:51 | 3 -> AppDialogSet 3
DEBUG | 20090731-024315.841 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:51 | 4 -> AppDialog 4
DEBUG | 20090731-024315.844 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:51 | 5 -> ClientSubscription sip:225@xxxxxxx

Following further you can see that one of the AppDialogSet usages and the ClientRegistration usage go away after un-registering.  The remaining 3 usages are all related to the ClientSubscription.  It appears that the final notify is not getting routed routed to the ClientSubscription usage properly - but it's impossible to tell why from the logs.

DEBUG | 20090731-024317.107 | sipmgr | RESIP:DUM | 706996888 | Dialog.cxx:328 | Dialog::dispatch: SipReq:  NOTIFY 225@xxxxxxxxxxxxx:5160 tid=f5eabcb54a48ae7f cseq=NOTIFY contact=10.224.41.10:5063 / 2 from(wire)
DEBUG | 20090731-024317.109 | sipmgr | RESIP:DUM | 706996888 | Dialog.cxx:517 | Making subscription (from creator) request: SUBSCRIBE sip:server@xxxxxxx SIP/2.0

Note:  if the ClientSubcription was found - you should not see the last line above.  Two things you can try:
1.  From the logs, it looks like you are using some older version of the source - you could try updating to the latest code.
2.  Trace the findMatchingClientSub method of Dialog.cxx when receiving the final notify.  Note:  This method uses the BaseSubscription::matches method.  You can inspect that method to see if your final Notify meets the requirements:
ie.
...
      if (msg.exists(h_Event))
      {
         return msg.header(h_Event).value() == mEventType 
            && ( !msg.header(h_Event).exists(p_id) || 
                 msg.header(h_Event).param(p_id) == mSubscriptionId);
         
      }
...

Scott

On Fri, Jul 31, 2009 at 3:30 AM, Wong Kok Meng-a17866 <kokmeng.wong@xxxxxxxxxxxx> wrote:
Hi,
 
My device, at power-up, does a SIP REGISTER and a SIP SUBSCRIBE, and receives a SIP NOTIFY for the SUBSCRIBE request. Then, the device is powered down. It does a deregistration and subscription, and it also receives the final notification for the subscription (state is terminated). But the resip does not call my API onDumCanBeDeleted(). It seems to be waiting for something to be released, my log is in the attachment.
 
In the log, the usages (at the point of powering down) is 5, after un-subscribe and deregister, it becomes 3 and it gets stuck in 3.
 
DEBUG | 20090731-024315.830 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:47 | Shutdown waiting for all usages to be deleted (5)
DEBUG | 20090731-024316.352 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:85 | Waiting for usages to be deleted (4)
DEBUG | 20090731-024316.357 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:85 | Waiting for usages to be deleted (3)
DEBUG | 20090731-024317.191 | sipmgr | RESIP:DUM | 706996888 | HandleManager.cxx:85 | Waiting for usages to be deleted (3)
What is the reason? What is resip waiting for? Did I miss out anything? Please advise. Thank you very much for your time.
 
Regards,
Kok Meng

_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/