[Asterisk-bugs] [Asterisk 0010133]: Large memory leak in dns.c:ast_search_dns()
noreply at bugs.digium.com
noreply at bugs.digium.com
Fri Jul 6 10:03:51 CDT 2007
The following issue has been ASSIGNED.
======================================================================
http://bugs.digium.com/view.php?id=10133
======================================================================
Reported By: scw
Assigned To: qwell
======================================================================
Project: Asterisk
Issue ID: 10133
Category: Addons/General
Reproducibility: always
Severity: minor
Priority: normal
Status: assigned
Asterisk Version: 1.4.6
SVN Branch (only for SVN checkouts, not tarball releases): N/A
SVN Revision (number only!):
Disclaimer on File?: No
Request Review:
======================================================================
Date Submitted: 07-06-2007 01:49 CDT
Last Modified: 07-06-2007 10:03 CDT
======================================================================
Summary: Large memory leak in dns.c:ast_search_dns()
Description:
On NetBSD (and almost certainly others), each call to ast_search_dns() will
leak more than 800 bytes of memory. This is particularly noticeable with
several "register" entries in sip.conf and a short registration interval,
where the asterisk process can consume 5-6MB of leaked memory in a 24 hour
period.
When HAS_RES_NINIT is defined, ast_search_dns() invokes res_ninit() to
initialise a local dnsstate variable. This variable is then used during
nameserver lookups in res_search(). On completion, ast_search_dns() calls
res_nclose() in an attempt to clean up.
Unfortunately, with NetBSD's BIND-based resolver (and probably any other
OS using the same BIND code, like FreeBSD), res_nclose() doesn't free all
state. Instead, ast_search_dns() must invoke res_ndestroy() to ensure all
state is freed. Note that res_ndestroy() does an implicit res_nclose(), so
simply replacing the call to res_nclose() with res_ndestroy() will do the
right thing.
======================================================================
Issue History
Date Modified Username Field Change
======================================================================
07-06-07 10:03 qwell Status new => assigned
07-06-07 10:03 qwell Assigned To => qwell
======================================================================
More information about the Asterisk-bugs
mailing list