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

François Delawarde fdelawarde at wirelessmundi.com
Thu Nov 17 17:15:24 MSK 2011


Master Anthony thanks again, your teachings were not in vain:
http://jira.freeswitch.org/browse/FS-3702

Regards,
François.

On Tue, 2011-11-15 at 18:02 +0100, François Delawarde wrote: 
> 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
> 
> 
> 
> _________________________________________________________________________
> 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