[asterisk-bugs] [Asterisk 0013409]: [patch] Huge memory leak because memory of channel cdr struct is never returned
Asterisk Bug Tracker
noreply at bugs.digium.com
Tue Sep 9 10:29:06 CDT 2008
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=13409
======================================================================
Reported By: tomaso
Assigned To: murf
======================================================================
Project: Asterisk
Issue ID: 13409
Category: Core/Channels
Reproducibility: always
Severity: block
Priority: normal
Status: feedback
Asterisk Version: SVN
SVN Branch (only for SVN checkouts, not tarball releases): 1.6.0
SVN Revision (number only!): 137818
Disclaimer on File?: N/A
Request Review:
======================================================================
Date Submitted: 2008-09-01 09:48 CDT
Last Modified: 2008-09-09 10:29 CDT
======================================================================
Summary: [patch] Huge memory leak because memory of channel
cdr struct is never returned
Description:
After two days of stress testing by making lots of calls across sip and
dahdi channels the asterisk process memory reached dizzy values: VSZ=3,2GB,
RSS=1,6GB before asterisk stucked completely (even the RAM of our server
(2GB) is finite ;-) ).
Actually this problem is not a question of load, but appears for each
single call.
Using valgrind the reason for that was quickly found: The memory of the
channel cdr struct (chan->cdr) is never returned, not for sip, not for
dahdi channels, when a channel is cleared.
Reproduce:
a.f.a.p. default configuration (modules.conf, etc.)
Make lots of calls and see ps's VSZ and RSS values.
Interested in a patch ? Or is someone revise this anyway?
======================================================================
Relationships ID Summary
----------------------------------------------------------------------
related to 0013235 Memory leak in Asterisk 1.4 and Trunk
related to 0013444 After update from 140415 to 141991 get ...
======================================================================
----------------------------------------------------------------------
(0092251) dferrer (reporter) - 2008-09-09 10:29
http://bugs.digium.com/view.php?id=13409#c92251
----------------------------------------------------------------------
rusell:
The patch works for me, it does avoid the crash and CDR is only affected
by in a "better way" I think. I see this difference:
before this, in a call A(DAHDI/1) -> B(DAHDI/3), A unnatended to C
(SIP/158) y get 2 cdrs:
src dst channel dstchannel (descending time)
A s DAHDI/1 SIP/158
A B DAHDI/1 DAHDI/3
after patch:
src dst channel dstchannel (descending time)
A C DAHDI/1 SIP/158
A B DAHDI/1 DAHDI/3
so dst is C not 's' anymore.
Personally I think that some work in cdr stuff has to be done in Asterisk.
Some time ago in the past (a couple of months) I read murf's blog and
tested his CDRfix patches, but finally I didn't apply them. I'm still not
convinced in how to manipulate CDR's when there are transfers, but I think
that's not an easy problem to solve.
Issue History
Date Modified Username Field Change
======================================================================
2008-09-09 10:29 dferrer Note Added: 0092251
======================================================================
More information about the asterisk-bugs
mailing list