With fastcgi_keep_conn it was possible that connection was closed after
FCGI_STDERR record with zero padding and without any further data read yet.
This happended as f->state was set to ngx_http_fastcgi_st_padding and then
"break" happened, resulting in p->length being set to f->padding, i.e. 0
(which in turn resulted in connection close).
Fix is to make sure we continue the loop after f->state is set.
"FastCGI sent in stderr: \"%*s\"",
m + 1 - msg, msg);
- if (f->pos == f->last) {
- break;
- }
-
} else {
if (f->padding) {
f->state = ngx_http_fastcgi_st_padding;