On Tue, May 18, 2010 at 02:13:56PM -0700, you wrote:
> > 15-Feb-2010 16:33:36.437 socket: file descriptor exceeds limit (128/64)
> 
> Not sure why this is happening other than the default limits not being 
> honored and/or get botched by setrlimit() in there somewhere...

So the issue with named not being able to bind to the ports is related
to the default FD_SETSIZE limit of 64.  When accept returns an fd, it
seems to be some value above 128.  Since FD_SETSIZE is 64, the fd_set
structures all get created with that size and trying to call select
with maxfds set to something greater than 64 results in select
indefinetly spewing -1 with EBADF as errno.

The workaround I found was to recompile the sources, but making sure
that -DFD_SETSIZE=16384 is defined during the configure stage.  Patch
attached below.

Can someone please update the port with this bumped up FD_SETSIZE patch?

Thanks.

Mohan 
--- bind-9.6.0_p1-1.cygport.orig     2009-06-15 21:48:10.000000000 -0700
+++ bind-9.6.0_p1-1.cygport        2010-05-22 02:53:09.470329500 -0700
@@ -29,5 +29,5 @@
 liblwres_devel_CONTENTS+=" usr/share/man/man3/lwres*"

 DISTCLEANFILES="aclocal.m4 libtool.m4"
-CYGCONF_ARGS="--with-libtool"
 MAKEOPTS+=" -j1"
+CYGCONF_ARGS="--with-libtool CFLAGS=-DFD_SETSIZE=16384"
 MAKEOPTS+=" -j4"

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to