[sr-dev] [SR-Users] No memory left in send_subscribe (PUA) from update_pua while building the tm dlg_t structure

Daniel-Constantin Mierla miconda at gmail.com
Wed Dec 21 12:18:09 CET 2011


Hello,

pkg.stats was added in 3.2.0, iirc. For 3.1, you can walk the packets in 
memory with gdb -- 3.1 has memory debug on, so you don't need to 
recompile (unless you turned it off).

Just attach to the pid of a sip worker  (gdb /path/to/kamailio 
_pid_value_) and run the gdb script.

Cheers,
Daniel

On 12/21/11 11:58 AM, laura testi wrote:
> Hi Daniel,
> I try the sercmd for pkg memory but it return 500 error:
>
>
> # sercmd
> sercmd 0.2
> Copyright 2006 iptelorg GmbH
> This is free software with ABSOLUTELY NO WARRANTY.
> For details type `warranty'.
> sercmd>  pkg.stats
> error: 500 - command pkg.stats not found
> sercmd>
>
>
>
> Is it available only for 3.2.x and master branch? Because we are using
> 3.1.5. But take the PUA module from master branch for the fetch_row
> parameter you have patched ;-)
>
>
> core.shmmem is ok.
>
>
>
> Thanks a lot
>
> Laura
>
> On Wed, Dec 21, 2011 at 10:58 AM, Daniel-Constantin Mierla
> <miconda at gmail.com>  wrote:
>> Hello,
>>
>> you can see the available pkg via sercmd, sending command pkg.stats (match
>> the entry for the pid printing the error). If there is no free memory, then
>> might be a leak.
>>
>> You can attach with gdb to the pid printing these errors and walk to pkg,
>> you see the commands for gdb at:
>>
>> http://www.asipto.com/pub/kamailio-devel-guide/#c04troubleshooting
>>
>> See if you have lot of allocated chunks from same place in source code
>> (ignore those at the beginning, mainly related to cfg parsing) and send the
>> details here.
>>
>> Cheers,
>> Daniel
>>
>>
>> On 12/21/11 10:44 AM, laura testi wrote:
>>
>> Hi,
>> we are using the PUA_XMPP and PUA modules from the master branch. When
>> the modules are started, everything are ok, the presence events from
>> XMPP are sent to kamailio SIP servers (PUBLISH/SUBSCRIBE) and cached
>> in the hash. But when there are several thousands records in the hash
>> tabel, the update_pua function called in the hashT_clean gives a lot
>> of "No memory left" error when the hashT_clean is waked up from the
>> time:
>>
>> ERROR: pua [send_subscribe.c]: No memory left
>> ERROR: pua [pua.c]: while building tm dlg_t structure
>>
>> The failed call is:
>> 	td = (dlg_t*)pkg_malloc(size);
>> 	if(td == NULL)
>> 	{
>> 		LM_ERR("No memory left\n");
>> 		return NULL;
>> 	}
>>
>> in dlg_t* pua_build_dlg_t(ua_pres_t* presentity) function in
>> send_subscribe.c. The size is about 400 and something... It's
>> strange.....
>>
>> Is it the memory leak in the PUA module?
>>
>>
>>
>> I also try to increase the pkg_memory from 4MB default to 16MB, but it
>> doesn't help.
>>
>>
>> Any Idea?
>>
>> Thanks in advanced
>>
>> Laura
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>> --
>> Daniel-Constantin Mierla -- http://www.asipto.com
>> http://linkedin.com/in/miconda -- http://twitter.com/miconda
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda




More information about the sr-dev mailing list