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