Hello! On Mon, Mar 18, 2013 at 10:34:59PM +0400, Daniel Podolsky wrote:
> > Чтение - заблокировано, и данные висят в буфере сокета и никому до > > них нет дела. Если используется свой код - поставить nginx в > > такую позу достаточно легко. > А как это ловить и отлаживать? Смотреть внимательно на флаги c->read в разных точках, в частности - при уходе в keepalive. > И почему отключение keep alive меняет ситуацию? Вроде бы - > заблокированный на чтении сокет закрывать должно быть некому. Почему? Его просто закроют, когда будет отправлен ответ. > Код там свой только перловый, и блокирующих операций в нем нет. Хочу > понять, на каком месте случается блокировка. Под "чтение заблокировано" выше следует понимать то, что nginx не пытается читать из сокета. Обычно для этого применяется специальный обработчик ngx_http_block_reading(), но получить тот же эффект методом неаккуратного обращения с кодом внутри nginx'а, особенно при использовании edge triggered методов обработки соединений, сложности не представляет. (Самописный upload progress на перле? Вообще-то он такого не умеет...) -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru