increasing file descriptors

Philip M. Gollucci pgollucci at p6m7g8.com
Thu May 8 05:16:43 UTC 2008


oxy wrote:
> the error in httpd-error.log is:
> /usr/src/lib/bind/isc/../../../contrib/bind9/lib/isc/unix/socket.c:2238: 
> REQUIRE(maxfd <= (int)1024U) failed.
> /usr/src/lib/bind/isc/../../../contrib/bind9/lib/isc/unix/socket.c:2238: 
> REQUIRE(maxfd <= (int)1024U) failed.
> /usr/src/lib/bind/isc/../../../contrib/bind9/lib/isc/unix/socket.c:2238: 
> REQUIRE(maxfd <= (int)1024U) failed.
You aren't running out of file descriptions, you are confusing bind.

Why are these errors in your httpd logs?  If you were out of file 
descriptors, you would see


file: table is full

check the dmesg buffer. Are you using mod_domain in httpd ?

 > 
 >/usr/src/lib/bind/isc/../../../contrib/bind9/lib/isc/unix/socket.c:2238:
 > REQUIRE(maxfd <= (int)1024U) failed.

As seen in the actual source file:
   REQUIRE(maxfd <= (int)FD_SETSIZE);

that (int)1024U comes from
/usr/src/sys/sys/select.h
/*
  * Select uses bit masks of file descriptors in longs.  These macros
  * manipulate such bit fields (the filesystem macros use chars).
  * FD_SETSIZE may be defined by the user, but the default here should
  * be enough for most uses.
  */
#ifndef FD_SETSIZE
#define FD_SETSIZE      1024U
#endif

You can raise this, but you'll need to recompile bind too.
I'd start with 2048U if I were you.

Bind does this b/c it indexes arrays for sockets based on this.



More information about the freebsd-apache mailing list