Upgrade of mod_fastcgi

olli hauer ohauer at gmx.de
Tue Mar 19 16:22:31 UTC 2013


Hi Lilian,

can you test the patch some days and report back if everything is running OK.
In worst case there are other issues not detected during a short time frame ...

PS:
I've send Lasse the same patch but haven't got any feedback until now.

--
Regards,
olli



On 2013-03-19 17:06, Lilian - Devclic wrote:
> 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.
>>>
> 
> 


More information about the freebsd-apache mailing list