[Freeswitch-users] Memory Leaks

Michael Jerris mike at jerris.com
Wed Jul 30 23:44:36 PDT 2008


Can you detail the exact callflow, config files and testing methods  
you used to produce this issue?  I suspect that this may be a real  
issue but we ran sipp testing 2 days ago so your scenario must be  
hitting an edge case we were not seeing.  That being said we have made  
no efforts to get freeswitch to run in so little memory, in fact we  
have quite a few things we allocate at switch start that could very  
well ammount to over 128mb even without calls.  You will likely not  
get it to work reliably with so little memory without some significant  
modifications.

Mike

On Jul 31, 2008, at 12:07 AM, "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