баг в proxy_cache?
umask
umask на yandex.ru
Вс Июн 20 14:28:29 MSD 2010
Добрый день,
ситуация такая. Есть nginx (1) на раздающих фронтендах, есть nginx (2) на бэкэндах, к которым подключен сторадж.
Произошла ситуация, при которой (1) тянул файл размером 2.7ГБ с (2) и (1) стянул только часть файла (чуть больше 70-и процентов) - видимо (1) сделали restart или просто прибили.
В итоге получился файл в кеше:
cdn3-ti:/cache/cache0 # head ./6/d3/4cd20316dabd922c81ab41a0988ffd36
_"LH�LiL-�9qZJ7g��
KEY: GET|192.168.10.101|/files/somefolder/binary.exe|dummy_1
HTTP/1.1 200 OK
Server: nginx/0.8.32
Date: Wed, 16 Jun 2010 19:22:51 GMT
Content-Type: application/octet-stream
Content-Length: 2787475007
Last-Modified: Wed, 09 Jun 2010 12:38:32 GMT
Connection: close
Accept-Ranges: bytes
Выше строка - Content-Length: 2787475007.
А вот что в файловой системе:
cdn3-ti:/cache/cache0 # ls -la ./6/d3/4cd20316dabd922c81ab41a0988ffd36
-rw------- 1 nginx nginx 2149680753 Jun 16 23:44 ./6/d3/4cd20316dabd922c81ab41a0988ffd36
cdn3-ti:/cache/cache0 # stat ./6/d3/4cd20316dabd922c81ab41a0988ffd36
File: `./6/d3/4cd20316dabd922c81ab41a0988ffd36'
Size: 2149680753 Blocks: 4198600 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 556528 Links: 1
Access: (0600/-rw-------) Uid: ( 107/ nginx) Gid: ( 107/ nginx)
Access: 2010-06-16 23:22:54.151967524 +0400
Modify: 2010-06-16 23:44:32.387976976 +0400
Change: 2010-06-16 23:44:32.467969881 +0400
Оказалось, что файл размером 2149680753 байта.
Для пользователя это выглядит так: файл качается до 70-т какого-то процента нормально, а потом происходит обрыв и любые дальнейшие попытки скачать что-то безуспешны:
--2010-06-19 14:20:04-- http://192.168.10.101/files/somefolder/binary.exe
Connecting to 192.168.10.101:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.
--2010-06-19 14:20:10-- (try: 2) http://192.168.10.101/files/somefolder/binary.exe
Connecting to 192.168.10.101:80... connected.
HTTP request sent, awaiting response... No data received.
Retrying.
..
--2010-06-19 14:24:04-- (try:20) http://192.168.10.101/files/somefolder/binary.exe
Connecting to 192.168.10.101:80... connected.
HTTP request sent, awaiting response... No data received.
Giving up.
Прибитие файла в кеше проблему решило, но осадок неприятный - куча пользователей не могла бы ещё неделю скачать данный файл.
При это всём nginx ничего не писал в лог ни на каких уровнях (error_log был выставлен в debug).
Если важно - nginx/0.8.32, ОС - SLES 11 x86_64. Сборка nginx без debug.
--
Ilyas Khasyanov
Подробная информация о списке рассылки nginx-ru