> On 12 Aug 2022, at 14:37, Alexey Vatchenko <[email protected]> wrote:
> 
>> On 12 Aug 2022, at 13:12, Claudio Jeker <[email protected]> wrote:
>> 
>> On Thu, Aug 11, 2022 at 02:00:39PM +0300, Alexey Vatchenko wrote:
>>> 
>>> I’m getting complains that the problem returned.
>>> 
>>> But I haven’t applied patch for slowcgi. Is it mandatory? I believe it 
>>> shouldn’t.
>>> 
>>> As I mentioned earlier, sometime the client is fast enough to make new 
>>> request before slowcgi daemon closes connection triggering 
>>> server_file_error() with EOF (or server_fcgi_error() in your case). So, our 
>>> goal to get to server_read_http() with reset client structure.
>> 
>> I think you need this diff on top of all what is in -current.
> 
> Applied on prod again. Waiting :)

Still complains.

> 
>> Index: server_fcgi.c
>> ===================================================================
>> RCS file: /cvs/src/usr.sbin/httpd/server_fcgi.c,v
>> retrieving revision 1.93
>> diff -u -p -r1.93 server_fcgi.c
>> --- server_fcgi.c    12 Aug 2022 08:40:25 -0000      1.93
>> +++ server_fcgi.c    12 Aug 2022 10:01:30 -0000
>> @@ -584,11 +584,23 @@ server_fcgi_read(struct bufferevent *bev
>>                                  ((struct http_descriptor *)
>>                                  clt->clt_descreq)->http_method
>>                                  == HTTP_METHOD_HEAD)
>> -                                    break;
>> -                            if (server_fcgi_writechunk(clt) == -1) {
>> +                                    /* nothing */ ;
>> +                            else if (server_fcgi_writechunk(clt) == -1) {
>>                                      server_abort_http(clt, 500,
>>                                          "encoding error");
>>                                      return;
>> +                            }
>> +                            if (clt->clt_fcgi.type == FCGI_END_REQUEST) {
>> +                                    bufferevent_enable(clt->clt_bev,
>> +                                        EV_READ|EV_WRITE);
>> +                                    if (clt->clt_persist)
>> +                                            clt->clt_toread =
>> +                                                TOREAD_HTTP_HEADER;
>> +                                    else
>> +                                            clt->clt_toread =
>> +                                                TOREAD_HTTP_NONE;
>> +                                    clt->clt_done = 0;
>> +                                    server_reset_http(clt);
>>                              }
>>                              break;
>>                      }

Reply via email to