[Freeswitch-dev] How can I detect the cause of a potential memory leak?

François Delawarde fdelawarde at wirelessmundi.com
Tue Nov 15 20:02:00 MSK 2011


Cool! I should do that more often...

I'll first try to figure out how you found those leaks from the report.

Thanks!
François.

On Tue, 2011-11-15 at 10:02 -0600, Anthony Minessale wrote:
> That report showed me 2 leaks.
> 
> 
> 1) in mod_cdr_sqlite where it was expanding a variable template and
> not checking if it needed to free the results.
> 2) in mod_dptools in the user channel code.
> 
> 
> Wait, there's more.
> 
> 
> Fixing the leak in the user channel then led me to realize there was a
> regression in the change that introduced that leak that was breaking
> the code that copies all the variables from the {} into the far end
> channel.
> 
> 
> anyway, try out GIT head.
> 
> 
> On Tue, Nov 15, 2011 at 3:25 AM, François Delawarde
> <fdelawarde at wirelessmundi.com> wrote:
>         I did a small valgrind test with git HEAD:
>         1. turn on, make 5 calls or so
>         2. leave FS on for the night (without calls)
>         3. shut it down cleanly in the morning
>         
>         During execution, some "Warning: invalid file descriptor -1 in
>         syscall
>         close()" (4-5 for each call + some extras).
>         
>         After shutting down, something strikes me in the vg.log file:
>         "definitely lost: 173,407,885 bytes in 84,680 blocks"
>         
>         Is this normal?
>         
>         valgrind log: http://pastebin.freeswitch.org/17779
>         
>         Thanks,
>         François. 
>         
>         
>         
>         On Mon, 2011-11-14 at 11:41 -0600, Anthony Minessale wrote:
>         > valgrind is your best bet:
>         >
>         > valgrind --tool=memcheck --log-file=vg.log --leak-check=full
>         > --leak-resolution=high
>         > --show-reachable=yes /usr/local/freeswitch/bin/freeswitch
>         -vg
>         >
>         >
>         > run this on normal traffic for a while and get the log file.
>         >
>         >
>         > if you unload mods it would not help with a leak but it
>         would with a
>         > swelling pool.
>         >
>         >
>         >
>         > On Mon, Nov 14, 2011 at 11:30 AM, François Delawarde
>         > <fdelawarde at wirelessmundi.com> wrote:
>         >         Hello,
>         >
>         >         I'm experiencing what I think is a memory leak in a
>         production
>         >         system
>         >         with a recent git (2-Nov), with FS consuming >5GB
>         and
>         >         increasing after a
>         >         few days with never more than 10 calls at once.
>         >
>         >         While the users are not experiencing problems so
>         far, I'm a
>         >         bit worried.
>         >         So I have a few questions:
>         >
>         >         - How can I be sure it's a leak and not some memory
>         pool thing
>         >         that FS
>         >         would free when the system needs (system has 10GB
>         total)?
>         >
>         >         - If I unload modules one by one, is the memory used
>         by this
>         >         module
>         >         freed immediately?
>         >
>         >         - What would be a "good" way to try and narrow down
>         the cause?
>         >         Is
>         >         valgrind a good tool for that?
>         >
>         >         Of course I'll try with GIT HEAD and try my best to
>         find the
>         >         cause
>         >         before considering to add a new Jira issue,
>         otherwise it's
>         >         quite
>         >         useless.
>         >
>         >
>         >         Thanks,
>         >         François.
>         >
>         >
>         >
>         _________________________________________________________________________
>         >         Professional FreeSWITCH Consulting Services:
>         >         consulting at freeswitch.org
>         >         http://www.freeswitchsolutions.com
>         >
>         >         FreeSWITCH-powered IP PBX: The CudaTel Communication
>         Server
>         >         
>         >
>         >         Official FreeSWITCH Sites
>         >         http://www.freeswitch.org
>         >         http://wiki.freeswitch.org
>         >         http://www.cluecon.com
>         >
>         >         FreeSWITCH-dev mailing list
>         >         FreeSWITCH-dev at lists.freeswitch.org
>         >
>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>         >
>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>         >         http://www.freeswitch.org
>         >
>         >
>         >
>         >
>         > --
>         > Anthony Minessale II
>         >
>         > FreeSWITCH http://www.freeswitch.org/
>         > ClueCon http://www.cluecon.com/
>         > Twitter: http://twitter.com/FreeSWITCH_wire
>         >
>         > AIM: anthm
>         > MSN:anthony_minessale at hotmail.com
>         > GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>         > IRC: irc.freenode.net #freeswitch
>         >
>         > FreeSWITCH Developer Conference
>         > sip:888 at conference.freeswitch.org
>         > googletalk:conf+888 at conference.freeswitch.org
>         > pstn:+19193869900
>         >
>         _________________________________________________________________________
>         > Professional FreeSWITCH Consulting Services:
>         > consulting at freeswitch.org
>         > http://www.freeswitchsolutions.com
>         >
>         > 
>         > 
>         >
>         > Official FreeSWITCH Sites
>         > http://www.freeswitch.org
>         > http://wiki.freeswitch.org
>         > http://www.cluecon.com
>         >
>         > FreeSWITCH-dev mailing list
>         > FreeSWITCH-dev at lists.freeswitch.org
>         > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>         >
>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>         > http://www.freeswitch.org
>         
>         
>         
>         _________________________________________________________________________
>         Professional FreeSWITCH Consulting Services:
>         consulting at freeswitch.org
>         http://www.freeswitchsolutions.com
>         
>         
>         
>         
>         Official FreeSWITCH Sites
>         http://www.freeswitch.org
>         http://wiki.freeswitch.org
>         http://www.cluecon.com
>         
>         FreeSWITCH-dev mailing list
>         FreeSWITCH-dev at lists.freeswitch.org
>         http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>         UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>         http://www.freeswitch.org
>         
> 
> 
> 
> 
> -- 
> Anthony Minessale II
> 
> FreeSWITCH http://www.freeswitch.org/
> ClueCon http://www.cluecon.com/
> Twitter: http://twitter.com/FreeSWITCH_wire
> 
> AIM: anthm
> MSN:anthony_minessale at hotmail.com
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
> IRC: irc.freenode.net #freeswitch
> 
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org
> googletalk:conf+888 at conference.freeswitch.org
> pstn:+19193869900
> 
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
> 
> 
> 
> 
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
> 
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org





Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list