Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Mar 2013 16:49:16 +0100
From:      olli hauer <ohauer@gmx.de>
To:        apache@FreeBSD.org
Cc:        Lilian - Devclic <lilian@devclic.fr>
Subject:   Re: Upgrade of mod_fastcgi
Message-ID:  <514888FC.8080708@gmx.de>
In-Reply-To: <514348DE.9000701@devclic.fr>
References:  <514348DE.9000701@devclic.fr>

next in thread | previous in thread | raw e-mail | index | archive | help
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@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.
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?514888FC.8080708>