[reSIProcate] DialogUsageManager shutdown.

palladin p-aladin at yandex.ru
Tue Apr 7 04:11:51 CDT 2015


Dear resip devels.
resiprocate 1.9.2

Could you please advise with the next issue?
DilaogUsageManager allows to set ServerAuthManager instance. Then, 
during application shutdown I call 
DialogUSageManager::shutdown(DumShutdownHandler*).

I have caught an issue when there are half completed auth transations. I 
mean that dum fills mIncomingFeatureChainMap with raw pointers( 
DumFeatureChain* ).
After DUM is destroyed - mIncomingFeatureChainMap continues to reference 
to SharedPtr<DumFeature> list. In my case that was custom AuthManager, 
inherited from resip::ServerAuthManager. And I've got a crash.
Could you please consider next piece of code, which may help to resolve 
the issue?

diff --git a/resip/dum/DialogUsageManager.cxx 
b/resip/dum/DialogUsageManager.cxx
index 1312c86..474ac91 100644
--- a/resip/dum/DialogUsageManager.cxx
+++ b/resip/dum/DialogUsageManager.cxx
@@ -186,6 +186,12 @@ DialogUsageManager::~DialogUsageManager()
         delete mServerPublications.begin()->second;  // Deleting a 
ServerPublication removes itself from the map
     }

+   for( FeatureChainMap::iterator it = 
mIncomingFeatureChainMap.begin(), it_end = 
mIncomingFeatureChainMap.end(); it != it_end; ++it )
+   {
+           delete it->second;
+   }
+
+   mIncomingFeatureChainMap.clear();
     //InfoLog ( << "~DialogUsageManager done" );
  }


Appreciate in advance.
Taras.






More information about the resiprocate-devel mailing list