[asterisk-bugs] [Asterisk 0013160]: Memory leak in iax2-parser.c

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Jul 29 07:23:45 CDT 2008


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=13160 
====================================================================== 
Reported By:                tavius
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   13160
Category:                   Channels/chan_iax2
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:           1.4.21.2 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             2008-07-25 10:10 CDT
Last Modified:              2008-07-29 07:23 CDT
====================================================================== 
Summary:                    Memory leak in iax2-parser.c
Description: 
We have found compiling asterisk without LOW_MEMORY has a memory leak in
iax_frame_new. It seems that the AST_LIST_TRAVERSE_SAFE_BEGIN macro is not
traversing the linked list in good way.
We have traced adding some ast_log in the code that iax_frame_free add
buffers in the frame cache linked list and after that iax_frame_new does
not find this free buffer in the list and allocates a new buffer with
ast_calloc_cache.
With the time and with our system, that receives too many calls, asterisk
gets all the available memory in the system and produces an error.
If we compile with LOW_MEMORY, then this piece of code is not compiled and
asterisk does not have memory leaks.
====================================================================== 

---------------------------------------------------------------------- 
 (0090792) russell (administrator) - 2008-07-29 07:23
 http://bugs.digium.com/view.php?id=13160#c90792 
---------------------------------------------------------------------- 
For anyone looking at debugging this, the first thing that I wanted to do
was check to see if there are any threads in chan_iax2 that only free
frames, or free a lot more than they allocate.  In that case, the
iax_frame_free function could take a parameter to hint whether the frame
should be cached or not.  See main/frame.c for similar handling.  If that
won't work for some reason, then the patch I posted to the -dev list to
limit the cache size is probably the next best thing. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2008-07-29 07:23 russell        Note Added: 0090792                          
======================================================================




More information about the asterisk-bugs mailing list