Hi Jerry, We have a sofia based UA application that has been running on 1.12.6 for quite a while. The application does call nua_handle_destroy(). It is in the debug print trace after the r_bye event.
I have many tools to watch memory usage, but the easiest way to see this is to look at the VmData in the /proc/pid/status file. I determined it was a handle by using mtrace(). I also have a way to display all the memory allocations by object since sofia has an object based memory allocation scheme. Some interesting details: The handle no longer lives in the nua agent nua_handles list. The handle home object has 1 reference. The handle has a sub object which is also a home, which also has 1 reference. This object was allocated in nua_client_check_restart(), by ca_create(). My guess here is the credentials created for the handle are not being dereferenced. Strange that this only happens when we generate the BYE. If we CANCEL or receive a BYE, the handle is freed. Colin.. Jerry Richards wrote: > Hello, > > Questions: How did you first detect this memory leak? Shouldn't your NUA > application freeing the handle (via nua_handle_destroy())? > > Best Regards, > Jerry > > > ------------------------------ > > Message: 6 > Date: Wed, 09 Jul 2008 13:49:52 -0700 > From: Colin Whittaker <[EMAIL PROTECTED]> > Subject: [Sofia-sip-devel] Possible Memory leak in 1.12.9 > To: Sofia-sip-devel@lists.sourceforge.net > Message-ID: <[EMAIL PROTECTED]> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Hi all, > Finally got a change to look at 1.12.9. > Had a few little issues with the build. Nothing big, and mostly due to the > age of my system. > > 1. My ancient system does NOT have CLOCK_MONOTONIC, but does have > clock_gettime(). Had to manually #undefine HAVE_CLOCK_GETTIME in config.h > > 2. My system is also missing va_copy(), which is taken care of in many .c > files, but su_tagarg.h uses it in the macro for ta_start, but relies on it > being supplied by some system include file. > Here is the change I copied from one of the C files that had it: > diff -n libsofia-sip-ua/su/sofia-sip/su_tagarg.h su_tagarg.h > a84 8 > #if defined(va_copy) > /* Xyzzy */ > #elif defined(__va_copy) > #define va_copy(dst, src) __va_copy((dst), (src)) #else #define va_copy(dst, > src) (memcpy(&(dst), &(src), sizeof (va_list))) #endif > > > So I'm running 1.12.9 and I am seeing a memory leak if the caller hangs up, > i.e. sends the BYE. > Looks like the handle is not being free'd But, it is no longer on the > nua->nua_handles list. I'm not sure where to start looking for the problem. > > ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Sofia-sip-devel mailing list Sofia-sip-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel