mod_fcgid: ap_pass_brigade failed in handle_request_ipc fun

Started by punsikirn48, December 13, 2017, 07:27:29 AM

Previous topic - Next topic

punsikirn48

Hi,

I have a weird one that I can't see any fixes that work with the setup I have.

Background:
I have a Windows 2012 environment running APACHE 2.4.12. Our setup is a Web server reverse proxying (Mod_proxy) to an application server running MOD_FCGID controlling a bunch of in-house FastCGI Exes written in c++.

The web server also has some PHP (PHP 5.3.29 - please don't ask!) that calls a few of those FastCGI exes for xml data to create graps etc.

Issue:
When the PHP page calls the FastCGI exe the Apache Access logs on the Application server show the request including the client IP, but then as the data is being pumped back to the Web server, it cuts out at 1 min exactly (and 8239678 bytes) and servers a status 500.

I've made every timeout option over 300 and every size option no less than 64M.

192.168.1.1 - - [27/Jun/2015:22:11:28 +1000] "GET /cgi-bin/xml.exe?iAction=1&iUserId=1 HTTP/1.1" 200 1357 "https://192.168.2.1/cgi-bin/xml.exe?iAction=1&iUserId=1" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
127.0.0.1 - - [27/Jun/2015:22:12:32 +1000] "POST /cgi-bin/xml.exe HTTP/1.1" 200 1508 "-" "-"
127.0.0.1 - - [27/Jun/2015:22:11:32 +1000] "POST /cgi-bin/xml.exe HTTP/1.1" 500 8239678 "-" "-"

[Sat Jun 27 21:46:05.358373 2015] [core:trace6] [pid 5460:tid 5252] core_filters.c(525): [client 192.168.2.1:56167] core_output_filter: flushing because of THRESHOLD_MAX_BUFFER
[Sat Jun 27 21:46:05.373999 2015] [core:trace1] [pid 5460:tid 5252] core_filters.c(548): (OS 10054)An existing connection was forcibly closed by the remote host.  : [client 192.168.2.1:56167] core_output_filter: writing data to the network
[Sat Jun 27 21:46:05.373999 2015] [fcgid:warn] [pid 5460:tid 5252] (OS 10054)An existing connection was forcibly closed by the remote host.  : [client 192.168.2.1:56167] mod_fcgid: ap_pass_brigade failed in handle_request_ipc function


The fixes that talk about PHP_FCGI_MAX_REQUESTS don't seem to cover my config. 


Any Ideas?

mario

The config parameter has a different name FcgidMaxRequestsPerProcess.


However thanks to your trace log I can see that the buffer is sending the content too early.

FcgidOutputBufferSize   65536 [default]


So you may increase that value. It is in Bytes. So "only" 64 kB.

You may also take a look at FcgidMaxRequestLen

I use FcgidMaxRequestLen 33554432