<div dir="ltr">Ok, quite clear. )  Just thought that in case of keepalive connection to FastCGI upstream we can process more than 1 request using one connect.<div><br></div><div>Unexpected <span style="font-family:arial,sans-serif;font-size:13px">FCGI_END_REQUEST is received in following case:</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">1) Request 1 sent to backend, results received and sent to client</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">2) Request 2 sent to backend by nginx and is in queue because php is busy after </span><span style="font-family:arial,sans-serif;font-size:13px">fastcgi_finish_request() call</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">3) php finishes extra work after fastcgi_finish_request() call and sends </span><span style="font-family:arial,sans-serif;font-size:13px">FCGI_END_REQUEST</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px">4) Nginx expects STDERR or STDOUT of request 2 but receives </span><span style="font-family:arial,sans-serif;font-size:13px">FCGI_END_REQUEST of request 1.</span></div>

<div><br></div><div>If this situation is normal by design I will just not use keep_conn.</div><div><br></div><div>Kind regards,</div><div>Dmitry Saprykin</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">

On 4 July 2014 17:23, Maxim Dounin <span dir="ltr"><<a href="mailto:mdounin@mdounin.ru" target="_blank">mdounin@mdounin.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hello!<br>
<div><div class="h5"><br>
On Fri, Jul 04, 2014 at 05:18:52PM +0400, Dmitry Saprykin wrote:<br>
<br>
> Hello,<br>
><br>
> This changeset adds support for FastCGI FCGI_END_REQUEST record type.<br>
> Now nginx does not process this type of FastCGI record.<br>
> In case of usage php fastcgi upstream which finishes FastCGI<br>
> requests before end of script using fastcgi_finish_request() call<br>
> it leads to "upstream sent unexpected FastCGI record: 3 while reading<br>
> response header from upstream" error messages and 502 for clients.<br>
><br>
> Changeset parses FCGI_END_REQUEST FastCGI records and ignores it<br>
> if keep_conn is enabled and record has type FCGI_REQUEST_COMPLETE.<br>
<br>
</div></div>What makes you think that this is something to be fixed in nginx?<br>
The FCGI_END_REQUEST record is clearly unexpected if there are no<br>
requests in flight.  You may want to focus on fixing the problem<br>
in php instead.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Maxim Dounin<br>
<a href="http://nginx.org/" target="_blank">http://nginx.org/</a><br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
</font></span></blockquote></div><br></div>