Опять "cache file has too long header"

Ilya Evseev nginx-forum на forum.nginx.org
Ср Сен 6 14:33:38 UTC 2017


nginx/1.13.4 64bit под CentOS7.
Редко, но регулярно выдаёт ошибку "cache file ... has too long header"

Прочёл всё, что написано по данному поводу:
1) https://forum.nginx.org/read.php?21,243579,243589#msg-243589
2)
http://nginx.2469901.n2.nabble.com/cache-file-has-too-long-header-bug-td7594976.html

proxy_buffer_size установлен в 8k и не менялся несколько месяцев.

Сайтов кэшируется много, все настройки у всех одинаковые, но почти все
ошибки происходят только у одного, причём не самого нагруженного. На
некоторых файлах - больше одного раза, т.е. вариант со старыми кэш-файлами,
созданными с другим proxy_buffer_size, отпадает.

Служебный заголовок с заголовком HTTP-ответа во всех файлах занимают меньше
килобайта, проверял командой:

find /home/.nginx/cache/.edge/user98023/ -type f -printf "%p  " -exec perl
-e 'my $len = 0; while(<>) { last if /^[\r\n]*$/; $len += length } print
"$len, $.\n"' '{}' ';'

Вопросы:

1) race condition при одновременном обновлении-чтении кэш-файла несколькими
воркерами ещё не побеждён?
В данный момент это наш единственный подозреваемый.

2) Какие данные имеет смысл дополнительно распечатывать в
http://hg.nginx.org/nginx/file/tip/src/http/ngx_http_file_cache.c#l578 для
диагностики, кроме h->body_start и c->body_start?

К сожалению, ошибка происходит только на загруженных production, которые
мало подходят для экспериментов.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,276273,276273#msg-276273



Подробная информация о списке рассылки nginx-ru