nginx-0.3.28
Igor Sysoev
is at rambler-co.ru
Fri Feb 17 18:15:50 MSK 2006
On Fri, 17 Feb 2006, Igor Sysoev wrote:
> On Thu, 16 Feb 2006, AleXXX V. NovikoFF wrote:
>
>>> При ошибке в ngx_http_output_filter() в конце вызывается
>>> ngx_http_finalize_request(r, rc), то есть, должно работать.
>>>
>>> Я правильно понимаю, что в данной версии при ошибке в логах
>>>
>>> "sendfile() failed (32: Broken pipe) while sending response to client"
>>> или
>>> "... Connection reset by peer) while sending response to client"
>>>
>>> post_action не вызывается ?
>>>
>>
>> именно! возможно есть еще какие-то скрытые места... но их уже не
>> отследить, я просто не могу породить такую же ошибку, как клиенты в
>> реале, а запускать полный дебаг на рабочий сервер - это я не знаю, что с
>> ним станется :) если расскажете, как сделать эти две ошибки -
>> поэксперементирую!
>
> В общем, как я и предполагал, ошибка при передаче клиенту не позволяет
> в дальнейшем работать проксированным и FastCGI запросам. Нужно править там.
А вот и патч.
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
--- src/http/ngx_http_upstream.c Thu Feb 16 14:21:18 2006
+++ src/http/ngx_http_upstream.c Fri Feb 17 18:13:14 2006
@@ -283,8 +283,12 @@
ngx_del_timer(c->read);
}
- r->read_event_handler = ngx_http_upstream_rd_check_broken_connection;
- r->write_event_handler = ngx_http_upstream_wr_check_broken_connection;
+ if (!(r->http_version == NGX_HTTP_VERSION_9 && r->header_only)) {
+ /* not a post_action */
+
+ r->read_event_handler = ngx_http_upstream_rd_check_broken_connection;
+ r->write_event_handler = ngx_http_upstream_wr_check_broken_connection;
+ }
if (ngx_event_flags & NGX_USE_CLEAR_EVENT) {
More information about the nginx-ru
mailing list