Maxim Dounin Wrote: > Это, безусловно, ошибка - должна быть ругань в логе, а не цикл. > E.g, при выключенном sendfile'е - будет что-то вроде: > > [alert] ... read() read only ... of ... from "..." > > А на FreeBSD и при использовании sendfile() в таком случае будет: > > [alert] ... sendfile() reported that "..." was truncated at ... > > На Linux'е интерфейс sendfile() несколько другой, и явного > детектирования таких ошибок сейчас nginx делать не умеет. > Когда-нибудь обязательно научим, тем более, что при использовании > thread'ов это стало нехорошо проявляться. > > Следует, однако, понимать, что в случае неатомарного обновления > файлов клиент имеет все шансы получить произвольную смесь из > старого и нового файлов (не говоря уже о новом содержимом, > обрезанном по старому размеру), и делать так - не надо. А если вы > так делаете - то надо быть готовым как минимум к мусору в ответах, > а как максимум - и к более другим проблемам. > > "В точно такой же конфигурации" - это вряд ли. Два года назад в > nginx'е не было поддержи "aio threads", а на цикл вы наступили > именно из-за неё - в обычной ситуации на Linux'е соединение просто > повиснет до таймаута. > > Что до мусора, то тут всё зависит от везения и конкретного формата > данных. Если специально не пытаться ловить повреждения данных - > можно долго ничего не замечать, списывая проблемы на подземный > стук.
По поводу iao threads согласен, запамятовал что включил его после обновления Про ошибки [alert] ... read() read only ... of ... from "..." помню, встречал. В моем случае решается несложно - обновляемый файл (а мне нужно его обновлять, тут никуда не деться) всегда дополняется пробелами до заранее заданного размера, и nginx остается доволен Но проблему с зацикливанием, как я понимаю, в ближайшее время вы не сможете решить, и как самый простой вариант - отключить aio threads до лучших времен? Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264984#msg-264984 _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
