[Freeswitch-users] Memory Leaks

Simon Capper scapper at ooma.com
Thu Jul 31 00:02:39 PDT 2008


I have fs running in a 64MB system, a 450MHz arm with no cache (or hard
drive).

I have very few calls running at the same time ~5 channels max, and I see a
memory usage of about 20-23MB. I have not done any load testing like you
describe, but during a bridged call the fs CPU load is not measurable (no
transcoding).

To get to this I did delete all the optional freeswitch modules that I was
not using, that made a noticeable difference.
If you don't need the language modules you can also save more space by
excluding switch_cpp.cpp from the build.

I use mod_sofia, mod_console, mod_syslog, mod_ilbc, mod_event_socket,
mod_commands, mod_conference, mod_dptools, mod_expr, mod_limit, mod_esf,
mod_fsv, mod_dialplan_xml and a custom module.

Edit autoload_configs/modules.conf.xml to exclude the modules you don't
need.

Simon



On 7/30/08 9:07 PM, "Sangwoo Jin" <swjinjin at volans.kr> wrote:

> I want to run freeswitch on low memory machine with 128M ram and no swap
> partition.
> On testing freeswitch on it, I have always seen the out of memory error.
> Could I control the memory pools?
> 
>> -----Original Message-----
>> From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-
>> users-bounces at lists.freeswitch.org] On Behalf Of Brian West
>> Sent: Thursday, July 31, 2008 11:38 AM
>> To: freeswitch-users at lists.freeswitch.org
>> Subject: Re: [Freeswitch-users] Memory Leaks
>> 
>> Try running 500,000 calls at 100-200 cps with a duration of 1 second.
>> You'll always see something about lost memory on shut down and you
>> can't fully trust that output due to the usage of memory pools.
>> You'll see a running FreeSWITCH hit a high water mark and level off on
>> memory usage.  I suspect that if you do this test with that many calls
>> you'll see the same usage at some point or it will be more
>> pronounced.  100 or 1000 calls isn't enough to really tell what is
>> going on.
>> 
>> /b
>> 
>> On Jul 30, 2008, at 9:25 PM, Sangwoo Jin wrote:
>> 
>>> 
>>> I can't use JIRA because I'm waiting for confirmation of creating
>>> account.
>>> 
>>> Now, I tested again with the current svn trunk.
>>> The lost memory of 1000 calls is 10 times more than 100 calls.
>>> 
>>> The following logs are my filtered valgrind's output.
>>> I have removed the lost blocks log which may not have to be free.
>>> 
>>> Could you check this problem?
>>> Sangwoo Jin
>>> 
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ======================================================================
>>> 100 calls' log
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ======================================================================
>>> ==29384== 284 bytes in 1 blocks are still reachable in loss record
>>> 25 of 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D98B43: su_hash_alloc (su_alloc.c:390)
>>> ==29384==    by 0x7D98CDE: su_home_new (su_alloc.c:562)
>>> ==29384==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29384==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29384==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29384==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29384==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29384==
>>> ==29384==
>>> 
>>> ==29384==
>>> ==29384== 504 bytes in 1 blocks are possibly lost in loss record 30
>>> of 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D98CC1: su_home_new (su_alloc.c:559)
>>> ==29384==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29384==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29384==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29384==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29384==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29384==    by 0x7DA3084: su_base_port_run (su_base_port.c:331)
>>> ==29384==
>>> ==29384==
>>> ==29384== 671 bytes in 8 blocks are possibly lost in loss record 32
>>> of 60
>>> ==29384==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29384==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29384==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29384==    by 0x7D04E15: msg_header_alloc (msg_parser.c:2309)
>>> ==29384==    by 0x7D0273D: header_parse (msg_parser.c:1114)
>>> ==29384==    by 0x7D025E3: extract_header (msg_parser.c:1071)
>>> ==29384==    by 0x7D02315: msg_extract_header (msg_parser.c:1008)
>>> ==29384==    by 0x7D05BD2: msg_header_parse_str (msg_parser.c:2801)
>>> ==29384==    by 0x7D05B1E: msg_header_add_str (msg_parser.c:2764)
>>> ==29384==    by 0x7D7B534: sip_add_tagis (sip_tag_class.c:260)
>>> ==29384==    by 0x7D42EB4: nua_client_init_request (nua_stack.c:2278)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==
>>> ==29384==
>>> ==29384== 1,072 bytes in 2 blocks are possibly lost in loss record
>>> 37 of 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D9ABB4: su_zalloc (su_alloc.c:1437)
>>> ==29384==    by 0x7DA0A84: su_msg_new (su_root.c:901)
>>> ==29384==    by 0x7D3E4CB: nua_signal (nua_stack.c:495)
>>> ==29384==    by 0x7D46FF7: nua_invite (nua.c:633)
>>> ==29384==    by 0x7CEB0DE: sofia_glue_do_invite (sofia_glue.c:1305)
>>> ==29384==    by 0x7CCA773: sofia_on_init (mod_sofia.c:99)
>>> ==29384==    by 0x40A630D: switch_core_session_run
>>> (switch_core_state_machine.c:415)
>>> ==29384==    by 0x40A52F4: switch_core_session_thread
>>> (switch_core_session.c:787)
>>> ==29384==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29384==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29384==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29384==
>>> ==29384==
>>> ==29384== 1,295 bytes in 21 blocks are still reachable in loss
>>> record 38 of
>>> 60
>>> ==29384==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29384==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29384==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29384==    by 0x7D04E15: msg_header_alloc (msg_parser.c:2309)
>>> ==29384==    by 0x7D11E7A: msg_header_make (msg_header_make.c:86)
>>> ==29384==    by 0x7D05A73: msg_header_add_make (msg_parser.c:2729)
>>> ==29384==    by 0x7D7B503: sip_add_tagis (sip_tag_class.c:256)
>>> ==29384==    by 0x7D433D8: nua_client_request_template (nua_stack.c:
>>> 2377)
>>> ==29384==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==
>>> ==29384==
>>> ==29384== 28,116 bytes in 99 blocks are indirectly lost in loss
>>> record 55 of
>>> 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D98B43: su_hash_alloc (su_alloc.c:390)
>>> ==29384==    by 0x7D98CDE: su_home_new (su_alloc.c:562)
>>> ==29384==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29384==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29384==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29384==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29384==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29384==
>>> ==29384==
>>> ==29384== 52,528 bytes in 98 blocks are definitely lost in loss
>>> record 56 of
>>> 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D9ABB4: su_zalloc (su_alloc.c:1437)
>>> ==29384==    by 0x7DA0A84: su_msg_new (su_root.c:901)
>>> ==29384==    by 0x7D3E4CB: nua_signal (nua_stack.c:495)
>>> ==29384==    by 0x7D46FF7: nua_invite (nua.c:633)
>>> ==29384==    by 0x7CEB0DE: sofia_glue_do_invite (sofia_glue.c:1305)
>>> ==29384==    by 0x7CCA773: sofia_on_init (mod_sofia.c:99)
>>> ==29384==    by 0x40A630D: switch_core_session_run
>>> (switch_core_state_machine.c:415)
>>> ==29384==    by 0x40A52F4: switch_core_session_thread
>>> (switch_core_session.c:787)
>>> ==29384==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29384==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29384==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29384==
>>> ==29384==
>>> ==29384== 57,034 bytes in 871 blocks are indirectly lost in loss
>>> record 57
>>> of 60
>>> ==29384==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29384==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29384==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29384==    by 0x7D04E15: msg_header_alloc (msg_parser.c:2309)
>>> ==29384==    by 0x7D11E7A: msg_header_make (msg_header_make.c:86)
>>> ==29384==    by 0x7D05A73: msg_header_add_make (msg_parser.c:2729)
>>> ==29384==    by 0x7D7B503: sip_add_tagis (sip_tag_class.c:256)
>>> ==29384==    by 0x7D42EB4: nua_client_init_request (nua_stack.c:2278)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29384==
>>> ==29384==
>>> ==29384== 135,046 (49,896 direct, 85,150 indirect) bytes in 99
>>> blocks are
>>> definitely lost in loss record 58 of 60
>>> ==29384==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29384==    by 0x7D98CC1: su_home_new (su_alloc.c:559)
>>> ==29384==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29384==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29384==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29384==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29384==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29384==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29384==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29384==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29384==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29384==    by 0x7DA3084: su_base_port_run (su_base_port.c:331)
>>> ==29384==
>>> ==29384== LEAK SUMMARY:
>>> ==29384==    definitely lost: 108,035 bytes in 303 blocks.
>>> ==29384==    indirectly lost: 85,177 bytes in 972 blocks.
>>> ==29384==      possibly lost: 2,535 bytes in 13 blocks.
>>> ==29384==    still reachable: 16,325,250 bytes in 524 blocks.
>>> ==29384==         suppressed: 0 bytes in 0 blocks.
>>> 
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ======================================================================
>>> 1000 calls' log
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ======================================================================
>>> ==29612==
>>> ==29612== 3,024 bytes in 6 blocks are still reachable in loss record
>>> 39 of
>>> 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98CC1: su_home_new (su_alloc.c:559)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==    by 0x7DA3084: su_base_port_run (su_base_port.c:331)
>>> ==29612==
>>> ==29612==
>>> ==29612== 3,692 bytes in 13 blocks are possibly lost in loss record
>>> 43 of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98B43: su_hash_alloc (su_alloc.c:390)
>>> ==29612==    by 0x7D98CDE: su_home_new (su_alloc.c:562)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==
>>> ==29612==
>>> ==29612== 4,322 bytes in 55 blocks are possibly lost in loss record
>>> 47 of 64
>>> ==29612==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29612==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29612==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29612==    by 0x7D9CAA2: su_strdup (su_strdup.c:55)
>>> ==29612==    by 0x7D05AF3: msg_header_add_str (msg_parser.c:2759)
>>> ==29612==    by 0x7D7B534: sip_add_tagis (sip_tag_class.c:260)
>>> ==29612==    by 0x7D42EB4: nua_client_init_request (nua_stack.c:2278)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==
>>> ==29612==
>>> ==29612== 5,360 bytes in 10 blocks are still reachable in loss
>>> record 49 of
>>> 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D9ABB4: su_zalloc (su_alloc.c:1437)
>>> ==29612==    by 0x7DA0A84: su_msg_new (su_root.c:901)
>>> ==29612==    by 0x7D3E4CB: nua_signal (nua_stack.c:495)
>>> ==29612==    by 0x7D46FF7: nua_invite (nua.c:633)
>>> ==29612==    by 0x7CEB0DE: sofia_glue_do_invite (sofia_glue.c:1305)
>>> ==29612==    by 0x7CCA773: sofia_on_init (mod_sofia.c:99)
>>> ==29612==    by 0x40A630D: switch_core_session_run
>>> (switch_core_state_machine.c:415)
>>> ==29612==    by 0x40A52F4: switch_core_session_thread
>>> (switch_core_session.c:787)
>>> ==29612==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29612==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29612==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29612==
>>> ==29612==
>>> ==29612== 5,360 bytes in 10 blocks are possibly lost in loss record
>>> 50 of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D9ABB4: su_zalloc (su_alloc.c:1437)
>>> ==29612==    by 0x7DA0A84: su_msg_new (su_root.c:901)
>>> ==29612==    by 0x7D3E4CB: nua_signal (nua_stack.c:495)
>>> ==29612==    by 0x7D46FF7: nua_invite (nua.c:633)
>>> ==29612==    by 0x7CEB0DE: sofia_glue_do_invite (sofia_glue.c:1305)
>>> ==29612==    by 0x7CCA773: sofia_on_init (mod_sofia.c:99)
>>> ==29612==    by 0x40A630D: switch_core_session_run
>>> (switch_core_state_machine.c:415)
>>> ==29612==    by 0x40A52F4: switch_core_session_thread
>>> (switch_core_session.c:787)
>>> ==29612==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29612==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29612==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29612==
>>> ==29612==
>>> ==29612== 7,056 bytes in 14 blocks are possibly lost in loss record
>>> 51 of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98CC1: su_home_new (su_alloc.c:559)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==    by 0x7DA3084: su_base_port_run (su_base_port.c:331)
>>> ==29612==
>>> ==29612==
>>> ==29612== 9,940 bytes in 35 blocks are still reachable in loss
>>> record 54 of
>>> 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98B43: su_hash_alloc (su_alloc.c:390)
>>> ==29612==    by 0x7D98CDE: su_home_new (su_alloc.c:562)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==
>>> ==29612==
>>> ==29612==
>>> ==29612== 43,590 bytes in 663 blocks are still reachable in loss
>>> record 57
>>> of 64
>>> ==29612==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29612==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29612==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29612==    by 0x7D9CAA2: su_strdup (su_strdup.c:55)
>>> ==29612==    by 0x7DA8FC9: su_vsprintf (su_sprintf.c:80)
>>> ==29612==    by 0x7DA90FA: su_sprintf (su_sprintf.c:125)
>>> ==29612==    by 0x7D75737: sip_addr_tag (sip_basic.c:993)
>>> ==29612==    by 0x7D765F1: sip_from_tag (sip_basic.c:1857)
>>> ==29612==    by 0x7D43155: nua_client_init_request (nua_stack.c:2322)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==
>>> ==29612==
>>> ==29612== 55,728 bytes in 1 blocks are still reachable in loss
>>> record 58 of
>>> 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0xFCE0A57: sf_open (sndfile.c:285)
>>> ==29612==    by 0xFCD9FD3: ??? (mod_sndfile.c:174)
>>> ==29612==    by 0x40A04A1: switch_core_perform_file_open
>>> (switch_core_file.c:100)
>>> ==29612==    by 0xFD3549A: ??? (mod_local_stream.c:178)
>>> ==29612==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29612==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29612==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29612==
>>> ==29612==
>>> ==29612== 270,368 bytes in 952 blocks are indirectly lost in loss
>>> record 59
>>> of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98B43: su_hash_alloc (su_alloc.c:390)
>>> ==29612==    by 0x7D98CDE: su_home_new (su_alloc.c:562)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==
>>> ==29612==
>>> ==29612== 542,088 bytes in 8,282 blocks are indirectly lost in loss
>>> record
>>> 60 of 64
>>> ==29612==    at 0x4022B08: malloc (vg_replace_malloc.c:207)
>>> ==29612==    by 0x7D989A2: sub_alloc (su_alloc.c:490)
>>> ==29612==    by 0x7D9929E: su_alloc (su_alloc.c:771)
>>> ==29612==    by 0x7D04E15: msg_header_alloc (msg_parser.c:2309)
>>> ==29612==    by 0x7D0273D: header_parse (msg_parser.c:1114)
>>> ==29612==    by 0x7D025E3: extract_header (msg_parser.c:1071)
>>> ==29612==    by 0x7D02315: msg_extract_header (msg_parser.c:1008)
>>> ==29612==    by 0x7D05BD2: msg_header_parse_str (msg_parser.c:2801)
>>> ==29612==    by 0x7D05B1E: msg_header_add_str (msg_parser.c:2764)
>>> ==29612==    by 0x7D7B534: sip_add_tagis (sip_tag_class.c:260)
>>> ==29612==    by 0x7D42EB4: nua_client_init_request (nua_stack.c:2278)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==
>>> ==29612==
>>> ==29612== 1,305,502 (493,920 direct, 811,582 indirect) bytes in 980
>>> blocks
>>> are definitely lost in loss record 62 of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D98CC1: su_home_new (su_alloc.c:559)
>>> ==29612==    by 0x7D06390: msg_create (msg.c:61)
>>> ==29612==    by 0x7D2490A: nta_msg_create (nta.c:2831)
>>> ==29612==    by 0x7D4336A: nua_client_request_template (nua_stack.c:
>>> 2361)
>>> ==29612==    by 0x7D42C8E: nua_client_init_request (nua_stack.c:2223)
>>> ==29612==    by 0x7D4256D: nua_client_create (nua_stack.c:2043)
>>> ==29612==    by 0x7D55125: nua_stack_invite (nua_session.c:701)
>>> ==29612==    by 0x7D3EA92: nua_stack_signal (nua_stack.c:592)
>>> ==29612==    by 0x7DA2FA9: su_base_port_execute_msgs (su_base_port.c:
>>> 276)
>>> ==29612==    by 0x7DA2D50: su_base_port_getmsgs (su_base_port.c:198)
>>> ==29612==    by 0x7DA3084: su_base_port_run (su_base_port.c:331)
>>> ==29612==
>>> ==29612==
>>> ==29612== 526,154 (525,280 direct, 874 indirect) bytes in 980 blocks
>>> are
>>> definitely lost in loss record 63 of 64
>>> ==29612==    at 0x4021C2E: calloc (vg_replace_malloc.c:397)
>>> ==29612==    by 0x7D9ABB4: su_zalloc (su_alloc.c:1437)
>>> ==29612==    by 0x7DA0A84: su_msg_new (su_root.c:901)
>>> ==29612==    by 0x7D3E4CB: nua_signal (nua_stack.c:495)
>>> ==29612==    by 0x7D46FF7: nua_invite (nua.c:633)
>>> ==29612==    by 0x7CEB0DE: sofia_glue_do_invite (sofia_glue.c:1305)
>>> ==29612==    by 0x7CCA773: sofia_on_init (mod_sofia.c:99)
>>> ==29612==    by 0x40A630D: switch_core_session_run
>>> (switch_core_state_machine.c:415)
>>> ==29612==    by 0x40A52F4: switch_core_session_thread
>>> (switch_core_session.c:787)
>>> ==29612==    by 0x40FC695: dummy_worker (thread.c:138)
>>> ==29612==    by 0x41EB191: start_thread (in /lib/libpthread-2.6.1.so)
>>> ==29612==    by 0x42F502D: clone (in /lib/libc-2.6.1.so)
>>> ==29612==
>>> ==29612== LEAK SUMMARY:
>>> ==29612==    definitely lost: 1,024,811 bytes in 2,066 blocks.
>>> ==29612==    indirectly lost: 812,483 bytes in 9,236 blocks.
>>> ==29612==      possibly lost: 20,718 bytes in 94 blocks.
>>> ==29612==    still reachable: 16,441,313 bytes in 1,217 blocks.
>>> ==29612==         suppressed: 0 bytes in 0 blocks.
>>> 
>>>> -----Original Message-----
>>>> From: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-
>>>> users-bounces at lists.freeswitch.org] On Behalf Of Michael Jerris
>>>> Sent: Wednesday, July 30, 2008 11:26 PM
>>>> To: freeswitch-users at lists.freeswitch.org
>>>> Subject: Re: [Freeswitch-users] Memory Leaks
>>>> 
>>>> 
>>>> On Jul 30, 2008, at 8:33 AM, Sangwoo Jin wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I I'm testing freeswitch with sipp.
>>>>> My test configuration is the following:
>>>>> Sipp(caller) -> freeswitch -> Sipp(callee)s
>>>>> Testing loads are 5 CPS ~ 30 CPS and caller has hanged up a call as
>>>>> soon as
>>>>> receiving 200 OK.
>>>>> 
>>>>> In this testing environment, freeswitch's used memory is growing
>>>>> continuously.
>>>>> 
>>>>> The following is the valgrind's log on testing with 5 CPS 100 calls.
>>>>> 
>>>> <snip>
>>>> 
>>>>> 
>>>>> 
>>>>> Is this problem's cause configuration mistake or freeswitch's bug?
>>>>> 
>>>>> Sangwoo Jin
>>>>> 
>>>>> 
>>>> 
>>>> 
>>>> You will need to compare the valgrind output from about 100 calls to
>>>> about 1000 calls to see which are actually larger.  Also, please make
>>>> sure you are using current svn trunk.  Most of the items in that list
>>>> appear to be things that we allocate at startup and never bother to
>>>> free as they are free when the application stops.  Those items are
>>>> supposed to be allocated for the entire life of the switch.  If you
>>>> have reports that are definitely more please report this to our bug
>>>> tracker at http://jira.freeswitch.org with exact details how you are
>>>> testing including how you are initiating the call and your dialplan.
>>>> 
>>>> Mike
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Freeswitch-users mailing list
>>>> Freeswitch-users at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-
>> users
>>>> http://www.freeswitch.org
>>> 
>>> 
>>> _______________________________________________
>>> Freeswitch-users mailing list
>>> Freeswitch-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>> 
>> 
>> _______________________________________________
>> Freeswitch-users mailing list
>> Freeswitch-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
> 
> 
> _______________________________________________
> Freeswitch-users mailing list
> Freeswitch-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org






More information about the FreeSWITCH-users mailing list