Date: Tue, 19 Mar 2013 17:23:10 +0100 From: olli hauer <ohauer@gmx.de> To: apache@FreeBSD.org Cc: Lilian - Devclic <lilian@devclic.fr>, Lasse Brandt <lb@pil.dk> Subject: Re: Upgrade of mod_fastcgi Message-ID: <514890EE.1070601@gmx.de> In-Reply-To: <51488D17.7060707@devclic.fr> References: <514348DE.9000701@devclic.fr> <514888FC.8080708@gmx.de> <51488D17.7060707@devclic.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
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@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?514890EE.1070601>