Re: ошибка "upstream prematurely closed connection" - обсудим ?
Илья Шипицин
chipitsine на gmail.com
Вс Окт 13 15:44:03 UTC 2019
вс, 13 окт. 2019 г. в 20:11, Evgeniy Berdnikov <bgx на protva.ru>:
> On Sun, Oct 13, 2019 at 02:18:30PM +0500, Илья Шипицин wrote:
> > в одном месте - не завершается:
> > http://hg.nginx.org/nginx/file/tip/src/http/ngx_http_upstream.c#l2369
> > собственно, recv в некоторых случаях может выдавать 0 и это не всегда
> > ошибка (у нас CentOS 7, возможно, там какая-то своя магия еще, с
> > какими-нибудь сетевыми штуками бекпортированными в ядро 3.10)
> > man recv
> > ...
> > "The value 0 may also be returned if the requested number of bytes to
> > receive from a stream socket was 0."
>
> Насколько я разбираюсь в английском, "requested number of bytes" -- это
> значение аргумента len, т.е. ситуация, когда в recv() передают длину
> буфера равную нулю, т.е. из сокета запрашивается чтение нуля байт.
> Nginx действительно так делает?
>
я не добавлял в это место логирование. не могу наверняка сказать.
у нас выключена настройка "proxy_buffering off;" и еще в каких-то моментах
конфиг отличается от дефолтного.
возможно, что при некоторой комбинации параметров может передаваться 0 в
recv (я попробую в это место отладку добавить),
возможно, что 0 возращается по каким-то другим причинам, связанным с
особенностью recv под centos
> > собственно, в этом месте меняем текст. и, чудо, после этого
> залогированные
> > "upstream prematurely closed connection" идеально кореллируют с
> реальными
> > обрывами.
>
> Что на что меняем? diff покажите.
>
вроде бы это не должно иметь значения.
у меня три места, где генерируется "upstream prematurely closed
connection". одно из этих мест я меняю на что-то отличное, чтобы в логе
понять,
где срабатывает ошибка. допустим, меняю на "xyz"
> --
> Eugene Berdnikov
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20191013/99b77d3e/attachment.htm>
Подробная информация о списке рассылки nginx-ru