Upgrade of mod_fastcgi
olli hauer
ohauer at gmx.de
Tue Mar 19 15:48:31 UTC 2013
Hi Lilian,
It seems the fix is included in the last mod_fastcgi snap.
Please can you test the following diff.
Index: Makefile
===================================================================
--- Makefile (revision 314644)
+++ Makefile (working copy)
@@ -2,10 +2,10 @@
# $FreeBSD$
PORTNAME= mod_fastcgi
-PORTVERSION= 2.4.6
-PORTREVISION= 3
+PORTVERSION= 2.4.7
CATEGORIES= www
MASTER_SITES= http://www.fastcgi.com/dist/
+DISTNAME= mod_fastcgi-SNAP-0910052141
MAINTAINER= apache at FreeBSD.org
COMMENT= A fast-cgi module for Apache
Index: distinfo
===================================================================
--- distinfo (revision 314644)
+++ distinfo (working copy)
@@ -1,2 +1,2 @@
-SHA256 (mod_fastcgi-2.4.6.tar.gz) = a5a887eecc8fe13e4cb1cab4d140188a3d2b5e6f337f8a1cce88ca441ddbe689
-SIZE (mod_fastcgi-2.4.6.tar.gz) = 100230
+SHA256 (mod_fastcgi-SNAP-0910052141.tar.gz) = e6564ae206284806c781834e9e89aa4b0a4dd647b45c6da5cc389c65a984bdc7
+SIZE (mod_fastcgi-SNAP-0910052141.tar.gz) = 103255
--
Regards,
olli
On 2013-03-15 17:14, Lilian - Devclic wrote:
> Hello,
>
> We had an issue with mod_fasctcgi. Some requests failed with no reason and these errors appears in the apache error log file :
>
>
> [Fri Mar 15 15:38:57 2013] [error] [client 91.198.44.22] (4)Interrupted system call: FastCGI: comm with server "/usr/local/sbin/php-fpm" aborted: select() failed, referer: https://sql.devclic.fr/db_structure.php?token=b9b99b544a46d355583070251708d948&db=devclic_si
> [Fri Mar 15 15:38:57 2013] [error] [client 91.198.44.22] FastCGI: incomplete headers (0 bytes) received from server "/usr/local/sbin/php-fpm", referer: https://sql.devclic.fr/db_structure.php?token=b9b99b544a46d355583070251708d948&db=devclic_si
>
> We had the same issue on Ubuntu and Debian system and we update the version to the latest 2.4.7.
>
> So, can you update the port to this version ? Or can you put this fix in the source code :
>
> http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504132
>
>> Index: libapache-mod-fastcgi-2.4.2/mod_fastcgi.c
>> ===================================================================
>> --- libapache-mod-fastcgi-2.4.2.orig/mod_fastcgi.c 2008-11-02 16:42:49.000000000 +0000
>> +++ libapache-mod-fastcgi-2.4.2/mod_fastcgi.c 2008-11-02 16:50:46.000000000 +0000
>> @@ -2178,12 +2178,15 @@
>> }
>>
>> /* wait on the socket */
>> - select_status = ap_select(nfds, &read_set, &write_set, NULL, &timeout);
>> + /* Interrupted system calls do happen now and then, so retry on EINTR */
>> + do {
>> + select_status = ap_select(nfds, &read_set, &write_set, NULL, &timeout);
>> + } while (select_status < 0 && errno == EINTR);
>>
>> if (select_status < 0)
>> {
>> ap_log_rerror(FCGI_LOG_ERR_ERRNO, r, "FastCGI: comm with server "
>> - "\"%s\" aborted: select() failed", fr->fs_path);
>> + "\"%s\" aborted: select() failed: \"%s\"", fr->fs_path, strerror(errno));
>> state = STATE_ERROR;
>> break;
>> }
>> @@ -2246,11 +2249,19 @@
>> }
>>
>> rv = fcgi_buf_socket_recv(fr->serverInputBuffer, fr->fd);
>> + /*
>> + * select(2) states: Under Linux, select() may report a socket
>> + * file descriptor as "ready for reading", while nevertheless a
>> + * subsequent read blocks.
>> + * Act as if the FD was not set if socket_recv returns EAGAIN.
>> + */
>> + if (rv < 0 && errno == EAGAIN)
>> + break;
>>
>> if (rv < 0)
>> {
>> ap_log_rerror(FCGI_LOG_ERR, r, "FastCGI: comm with server "
>> - "\"%s\" aborted: read failed", fr->fs_path);
>> + "\"%s\" aborted: read failed: \"%s\"", fr->fs_path, strerror(errno));
>> state = STATE_ERROR;
>> break;
>> }
>
> We test it on a production server and at this moment no more problem.
> Thanks a lot.
> Best Regards.
>
More information about the freebsd-apache
mailing list