BIND 9.3.2 Memory Leak?

Etienne etienne at vdn.ca
Tue Jul 25 15:53:17 UTC 2006


I'm experiencing what seems to be memory leaks with Bind 9.3.2 after it runs 
for 60-100 hours. It usually happens when I do a rndc reload.
Any of you know how to fix that?

Here is what i can see when it crashes:
# nslookup
> yahoo.com
Server:         127.0.0.1
Address:        127.0.0.1#53
** server can't find yahoo.com: SERVFAIL
> exit

# top
Mem: 525M Active, 256M Inact, 165M Wired, 47M Cache, 111M Buf, 3496K Free
Swap: 2048M Total, 60K Used, 2048M Free

 PID USERNAME PRI NICE   SIZE    RES STATE    TIME   WCPU    CPU COMMAND
67330 root      96    0   516M   515M select  79:50  0.00%  0.00% named

Every other process take no or almost no memory

Then it craps out with those errors:

10:23:05named[: resolver.c:2870: unexpected error:
10:23:05named[: isc_timer_create: out of memory
10:23:20 ruff named[67330]: timer.c:650: unexpected error:
10:23:20 ruff named[67330]: couldn't allocate event
10:26:37named[: isc_timer_create: out of memory
10:30:01named[: dropped command channel from 127.0.0.1#55422: out of memory
10:59:09named[: ifiter_getifaddrs.c:61: unexpected error:
10:59:09named[: getting interface addresses: getifaddrs: Cannot allocate 
memory
11:00:00named[: dropped command channel from 127.0.0.1#63784: out of memory
11:00:01named[: cache cleaner could not create iterator: out of memory
11:00:01named[: cache.c:610: unexpected error:
11:00:01named[: cache cleaner: dns_dbiterator_first() failed: out of memory

I had no response on my original post(F.R.A.T.):
"
I have a 2 BIND servers and the second one copies data(zone files) and 
reloads it every hour or so.
The version of the BIND is 9.3.2

This always happens after bind runs for 60-100hours. It crashes every time.

11:00:01 server named[20174]: dns_master_load: out of memory
11:00:01 server named[20174]: could not configure root hints 
from'named.root': out of memory
11:00:01 server named[20174]: reloading configuration failed: out of memory

Now the weird thing is that I had BIND running with the exact same 
configuration on another server and it never crashed.
Also I had the same config on the same server with another version of the OS 
and another version of bind and it never crashed.
I browsed other posts about the out of memory issue and it said to change 
the datasize variable.

Right now, I have no Datasize variable set in named.conf so the default is 
default(from bind's admin book).
It says "default uses the limit that was in force when the server was 
started.". Now I have no idea how much that is and how much i should put as 
datasize variable.

Do you know how to check the size of the datasize if it's set to default?
Do you guys ever had this problem before and have an idea of a good 
datasize?(I guess it depends on what you do with the server and what kind of 
server it is...)
----------
6.2.16.9. Operating System Resource Limits
The server's usage of many system resources can be limited. Scaled values 
are allowed when specifying resource limits. For example, 1G can be used 
instead of 1073741824 to specify a limit of one gigabyte. unlimited requests 
unlimited use, or the maximum available amount. default uses the limit that 
was in force when the server was started. See the description of size_spec 
in Section 6.1.
The following options set operating system resource limits for the name 
server process. Some operating systems don't support some or any of the 
limits. On such systems, a warning will be issued if the unsupported limit 
is used.
coresize
The maximum size of a core dump. The default is default.
datasize
The maximum amount of data memory the server may use. The default is 
default. This is a hard limit on server memory usage. If the server attempts 
to allocate memory in excess of this limit, the allocation will fail, which 
may in turn leave the server unable to perform DNS service. Therefore, this 
option is rarely useful as a way of limiting the amount of memory used by 
the server, but it can be used to raise an operating system data size limit 
that is too small by default. If you wish to limit the amount of memory used 
by the server, use the max-cache-size and recursive-clients options instead.
files
The maximum number of files the server may have open concurrently. The 
default is unlimited.
stacksize
The maximum amount of stack memory the server may use. The default is 
default.
----------
"

Etienne 



More information about the bind-users mailing list