[asterisk-users] "Hidden" memory leak

Tilghman Lesher tlesher at digium.com
Wed Jun 23 16:27:20 CDT 2010


On Wednesday 23 June 2010 15:45:05 Miguel Molina wrote:
> Hi all,
>
> Anyone know why this happens?
>
> Mem:    524288k total,   508120k used,    16168k free,        0k buffers
> Swap:        0k total,        0k used,        0k free,        0k cached
>
>    PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>      1 root      15   0  2152  664  576 S  0.0  0.1   0:49.26 init
>   7398 root      18   0 10172 2904 2312 S  0.0  0.6   0:00.21 sshd
>   9856 root      15   0  4756 1528 1232 S  0.0  0.3   0:00.06 bash
> 11316 root      15   0  3332 1112  572 S  0.0  0.2   0:01.14 crond
> 16282 root      25   0  4756 1008  820 S  0.0  0.2   0:00.00 safe_asterisk
> 22514 root      25   0  494m *445m* 6612 S  0.0 *87.0* 663:08.66 asterisk
>
> virtual1_ast1*CLI> memory show summary
>        4644 bytes in 2 allocations in file 'res_timing_pthread.c'
>        4096 bytes in 1 allocations in file 'chan_unistim.c'
>         484 bytes in 1 allocations in file 'res_clialiases.c'
>          96 bytes in 2 allocations in file 'devicestate.c'
>         244 bytes in 1 allocations in file 'iax2-provision.c'
>         660 bytes in 1 allocations in file 'chan_agent.c'
>          14 bytes in 2 allocations in file 'http.c'
>        1336 bytes in 4 allocations in file 'hashtab.c'
>         812 bytes in 2 allocations in file
> '/usr/src/asterisk-1.6.2.9-rc3/include/asterisk/strings.h'
>         484 bytes in 1 allocations in file 'bridge_multiplexed.c'
>       24648 bytes in 2 allocations in file 'stdtime/localtime.c'
>       11624 bytes in 9 allocations in file 'app_voicemail.c'
>         568 bytes in 3 allocations in file 'logger.c'
>        3410 bytes in 4 allocations in file 'chan_oss.c'
>         356 bytes in 1 allocations in file 'func_dialgroup.c'
>         548 bytes in 2 allocations in file 'features.c'
>          80 bytes in 10 allocations in file 'channel.c'
>         324 bytes in 3 allocations in file 'cdr.c'
>          84 bytes in 4 allocations in file 'timing.c'
>         484 bytes in 1 allocations in file 'app_confbridge.c'
>         779 bytes in 13 allocations in file 'taskprocessor.c'
>        4752 bytes in 22 allocations in file 'file.c'
>       14656 bytes in 162 allocations in file 'sched.c'
>        2128 bytes in 79 allocations in file 'manager.c'
>        1400 bytes in 6 allocations in file 'res_musiconhold.c'
>       25440 bytes in 2 allocations in file 'app_followme.c'
>        4260 bytes in 16 allocations in file
> '/usr/src/asterisk-1.6.2.9-rc3/include/asterisk/threadstorage.h'
>       11713 bytes in 49 allocations in file 'res_phoneprov.c'
>       30888 bytes in 24 allocations in file 'io.c'
>         637 bytes in 22 allocations in file 'cdr_pgsql.c'
>        9312 bytes in 3 allocations in file 'mpool/mpool.c'
>        2590 bytes in 35 allocations in file 'utils.c'
>       35963 bytes in 10 allocations in file 'app_minivm.c'
>       15078 bytes in 498 allocations in file 'loader.c'
>        9686 bytes in 485 allocations in file 'cli.c'
>      208348 bytes in 342 allocations in file 'chan_sip.c'
>       39199 bytes in 1191 allocations in file 'indications.c'
>        7809 bytes in 281 allocations in file 'asterisk.c'
>       22413 bytes in 285 allocations in file 'config.c'
>     2077300 bytes in 32793 allocations in file 'chan_iax2.c'
>         212 bytes in 3 allocations in file 'netsock.c'
>       45309 bytes in 539 allocations in file 'xmldoc.c'
>       99512 bytes in 239 allocations in file 'app_queue.c'
>       23080 bytes (     23080 cache) in 73 allocations in file 'frame.c'
>        3308 bytes in 139 allocations in file 'pbx_config.c'
>      379223 bytes in 1940 allocations in file 'pbx.c'
>      434640 bytes in 36220 allocations in file 'astobj2.c'
>      392396 bytes in 6331 allocations in file 'event.c'
> *3957027 *bytes allocated (23080 in caches) in 81858 allocations
>
> Anoyone knows why the memory leak is not shown in the asterisk malloc
> debug, and how can I figure what's causing it? The asterisk version is
> 1.6.2.9.

If it's not listed in the internal debug, then it's probably a memory leak in
one or more of the external libraries linked into Asterisk.  That could be
anything from openssl to libxml2 (neither likely) to something specifically
related to a second or third party module that you've loaded.

-- 
Tilghman Lesher
Digium, Inc. | Senior Software Developer
twitter: Corydon76 | IRC: Corydon76-dig (Freenode)
Check us out at: www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list