Client Timed Out
Maxim Dounin
mdounin at mdounin.ru
Sun May 24 02:26:54 MSD 2009
Hello!
On Fri, May 22, 2009 at 06:07:27PM +0200, Sergey Bondari wrote:
> Все доброго дня,
>
> Поступила жалоба от клиента что иногда обрывается коннект при
> просмотре FLV видео. Удалось несколько раз воспроизвести, но
> никакого детерминизма не обнаружилось. Просто кликаешь кликаешь по
> сайту и вдруг раз в 100 кликов действительно видео обрывается на 1
> или 2 секунде просмотра (никогда дольше).
>
> Видел что тут по пролетали посты с подобной проблемой, но там
> вроде как дебаг лог не создали.
>
> nginx/0.7.46 на генту с патчем от Максима Дунина против проблем с
> обрывом соединений у limit_req
[...]
Старый патч откатить, новый накатить.
Maxim Dounin
-------------- next part --------------
diff --git a/src/http/modules/ngx_http_limit_req_module.c b/src/http/modules/ngx_http_limit_req_module.c
--- a/src/http/modules/ngx_http_limit_req_module.c
+++ b/src/http/modules/ngx_http_limit_req_module.c
@@ -263,8 +263,23 @@ done:
static void
ngx_http_limit_req_delay(ngx_http_request_t *r)
{
+ ngx_event_t *wev;
+
ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
- "limit_req delay");
+ "limit_req delay patched 2");
+
+ wev = r->connection->write;
+
+ if (!wev->timedout) {
+
+ if (ngx_handle_write_event(wev, 0) != NGX_OK) {
+ ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
+ }
+
+ return;
+ }
+
+ wev->timedout = 0;
if (ngx_handle_read_event(r->connection->read, 0) != NGX_OK) {
ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR);
More information about the nginx-ru
mailing list