I can confirm significant Freeswitch process memory growth over time when ESL is used intensively, from 100MB in normal case to 700-900MB after few hours of high esl load, though I have no valgrind check results, as I can't do tests at production server.
With less than 300 channels in peak we have 900MB FS process size, never shrinking back :(

 


2013/11/12 gggyniidt <gggyniidt@gmail.com>
Hello
  Using ESL found a memory leak problem
   valgrind --tool=memcheck --leak-check=full ./myprog
  output as follows

==6872== 29,986 (88 direct, 29,898 indirect) bytes in 1 blocks are definitely lost in loss record 401 of 408                 
==6872==    at 0x4A06AAA: malloc (vg_replace_malloc.c:291)
==6872==    by 0x413941: esl_event_create_subclass (esl_event.c:179)                                                         
==6872==    by 0x410DC3: esl_recv_event (esl.c:1245)                                                                         
==6872==    by 0x411675: esl_send_recv_timed (esl.c:1517)                                                                    
==6872==    by 0x411C1B: esl_execute (esl.c:555)                                                                             
==6872==    by 0x408758: CRBT::Route() (CRBT.cpp:42)                                                                         
==6872==    by 0x40A02F: DPL::route() (DPL.cpp:234)                                                                          
==6872==    by 0x40FCA8: mycallback(int, int, sockaddr_in*) (listener.cpp:47)                                                
==6872==    by 0x41032F: client_thread (esl.c:654)                                                                           
==6872==    by 0x413FC7: thread_launch (esl_threadmutex.c:74)                                                                
==6872==    by 0x34CAA07850: start_thread (in /lib64/libpthread-2.12.so)                                                     
==6872==    by 0x34CA6E890C: clone (in /lib64/libc-2.12.so)  


==6872== LEAK SUMMARY:
==6872==    definitely lost: 88 bytes in 1 blocks
==6872==    indirectly lost: 29,898 bytes in 76 blocks
==6872==      possibly lost: 550,082 bytes in 51 blocks
==6872==    still reachable: 832,937 bytes in 840 blocks
==6872==         suppressed: 0 bytes in 0 blocks
==6872== Reachable blocks (those to which a pointer was found) are not shown.
==6872== To see them, rerun with: --leak-check=full --show-leak-kinds=all



   Part of my code is as follows

bool CRBT::Route() {
string data = "ringback=file_string://";
data.append(FileName);

esl_execute(handle, "set", data.c_str(), NULL);
return true;
}

The OS version is Centos x86_64 6.3
The Freeswitch version is 1.2.13

Thanks for your help.

_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

FreeSWITCH-powered IP PBX: The CudaTel Communication Server
http://www.cudatel.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org




--
Best regards,

Dmitry Sytchev,
IT Engineer