[OpenSER-Devel] Memory leak (probably in custom module)

Ardjan Zwartjes a.zwartjes at telecats.nl
Wed Oct 3 11:54:52 CEST 2007


Good morning developers,

I'm currently developing some custom openser modules, which is going
fine, except for the fact that I seem to have introduced a memory leak
somewhere. After some time of running, openser stops functioning and
keeps giving "out of memory errors". 
Following the pointers on
http://www.openser.org/dokuwiki/doku.php/troubleshooting:memory#how_to_h
andle_it I have compiled openser and my modules with DBG_QM_MALLOC to
generate the memory logging. I restarted openser, placed one call using
my modules and waited for 20 minutes before sending  a SIGUSR1 signal to
one of the SER threads. This gave me about 1800 lines of extra logging
showing 143 alloc'ed fragments in SHM and 469 in PKG. My guess is this
isn't good ;). The problem is that none of the alloc'ed fragments is
alloc'ed from my own code.
My guess is that I'm forgetting to free some memory alloc'ed by an API
call, but I'm clueless on how to find the place in my code where I make
this call. I checked to see if the memory is alloc'ed from a single
location, but unfortunately that is not the case. There are however some
locations that have a lot of alloc'ed fragments left, I've put the top 3
below.

cfg.lex: addstr(785)			(137 fragments)
route_struct.c: mk_action(104)	(108 fragments)
Route_struct.c: mk_exp(53)		(55 fragments)	

Can somebody give me any pointers on how to locate the origin of this
memory leak? Are the lines mentioned above used in a common API call
which leaves memory to be freed? Any help would be greatly appreciated.
If needed, I can put the complete memory log online, but my guess is
that there aren't that many people interested in going through 1800
lines of memory logging ;).

Kind regards,
Ardjan Zwartjes
Telecats BV

-----
Ardjan Zwartjes | R&D Consultant | Telecats bv | KvK Enschede 06069106 |
Tel:053 488 99 18 | Fax: 053 488 99 10 | E-mail:
ardjan.zwartjes at telecats.nl |



More information about the Devel mailing list