Upgrade of mod_fastcgi

Lilian - Devclic lilian at devclic.fr
Tue Mar 19 16:07:01 UTC 2013


Hi,

Thanks for reply.

It seems to work and it compile well !

Thanks for fix.

Le 19/03/2013 16:49, olli hauer a écrit :
> 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.
>>


-- 
Lilian RIGARD - Devclic
Gérant - CEO & CTO
Téléphone (Standard) / Phone : +33 811 69 64 45 (Prix appel local)
Portable / Cell Phone : +33 6 29 59 21 34
E-mail : lilian at devclic.fr
Web : http://www.devclic.fr

Visitez nos sites internet : Forum-Webmaster 
<http://www.forum-webmaster.com> - MeilleursPrix 
<http://www.meilleursprix.net> - NDFR <http://www.ndfr.net> - 
E-commercant <http://www.e-commercant.com> - Blog du High-Tech 
<http://www.blogduhightech.com>


More information about the freebsd-apache mailing list