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