Package: libapache2-mod-fastcgi
Version: 2.4.6-1
Severity: normal
Tags: upstream patch
The exact error message I had in error_log is as follow :
[Thu Jan 12 07:36:56 2012] [error] [client 127.0.0.1] (2)No such file or
directory: FastCGI: failed to connect to server
"/var/alternc/cgi-bin/php52.fcgi": socket file descriptor (1345) is larger than
FD_SETSIZE (1024), you probably need to rebuild Apache with a larger FD_SETSIZE
This bug has already been reported for apache1.3 long ago : #280206 but was
never fixed.
It is still buggy in apache2, but only appears when you have more than 1024
file descriptors opened in Apache itself (in my case, more than 512 Vhosts with
2 filehandle per vhost...)
The FD_SETSIZE check from fastcgi source code definitely looks like a buggy
check:
It checks that a file descriptor number is <1024, and pretends it may be above
ulimit limits if that's the case... but that's useless: if you try to open a
file above ulimit limits, you will have 0 as file descriptor returned from
open() syscall...
More than that, it compares that file descriptor number with FD_SETSIZE, which
is definitely not the maximum number of file an apache2 can open, you may have
made it far higher with ulimit -n in the system configuration ...
So the patch I'm using since (successfully) is just removing that useless check
...
Hope this can help solving this, don't hesitate to ask for help on this
package, as you can see, I use it on many vhosts ;)
-- System Information:
Debian Release: 6.0.3
APT prefers stable
APT policy: (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-5-vserver-686-bigmem (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages libapache2-mod-fastcgi depends on:
ii apache2.2-common 2.2.16-6+squeeze4 Apache HTTP Server common files
ii libc6 2.11.2-10 Embedded GNU C Library: Shared lib
libapache2-mod-fastcgi recommends no packages.
libapache2-mod-fastcgi suggests no packages.
-- no debconf information
--- libapache-mod-fastcgi-2.4.6.orig/mod_fastcgi.c 2007-11-13 00:00:10.000000000 +0100
+++ libapache-mod-fastcgi-2.4.6/mod_fastcgi.c 2012-01-11 18:08:56.000000000 +0100
@@ -1366,16 +1366,6 @@
return FCGI_FAILED;
}
-#ifndef WIN32
- if (fr->fd >= FD_SETSIZE) {
- ap_log_rerror(FCGI_LOG_ERR, r,
- "FastCGI: failed to connect to server \"%s\": "
- "socket file descriptor (%u) is larger than "
- "FD_SETSIZE (%u), you probably need to rebuild Apache with a "
- "larger FD_SETSIZE", fr->fs_path, fr->fd, FD_SETSIZE);
- return FCGI_FAILED;
- }
-#endif
/* If appConnectTimeout is non-zero, setup do a non-blocking connect */
if ((fr->dynamic && dynamicAppConnectTimeout) || (!fr->dynamic && fr->fs->appConnectTimeout)) {