ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: nginx-0.3.28



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
--- 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) {
 


 




Copyright © Lexa Software, 1996-2009.