Welcome! Log In Create A New Profile

Advanced

Re: zero size buf in output при proxy cache

Иван
February 25, 2016 10:20AM
Максим, здравствуйте!

Можем ли мы еще что-то сделать для решения этой проблемы?

С уважением, Иван.

В письме от 16 февраля 2016 23:04:57 пользователь Maxim Dounin написал:
> Hello!
>
> On Tue, Feb 16, 2016 at 02:00:33PM -0500, iprok wrote:
> > Здравствуйте!
> >
> > На видеостриминговой системе используем два уровня проксей (эджи и
> > ориджины). Эджи проксируют клиентов на ориджины, ориджины проксируют эджи
> > на сервера-источники видео. Видео отдается в формате HLS: это плейлисты
> > (текстовые файлы) и чанки видео (видео-файлы в формате ts).
> >
> > В локейшенах, проксирующих чанки, на ориджинах и эджах регулярно, хоть и
> > относительно не часто (пара десятков за сутки), проскакивают ошибки "zero
> >
> > size buf in output". Мне кажется причиной является одна из директив:
> > proxy_cache_use_stale updating;
> > proxy_cache_lock on;
> >
> > так как до их появления таких ошибок не было.
> >
> > nginx в основном 1.8.1, но проявиляется так же и на 1.9.11, логи ниже
> > делал
> > на последней. Используем пакеты для debian8 из репозитория на nginx.org.
> >
> > Если смотреть access.log, то чанк в помент проявления этой ошибки отдается
> > частично, но с кодом 200 (размер в логе меньше реального размера), при
> > следующем запросе отдается нормально, и ошибка не проявляется.
> >
> > Лог кратко (debug.log внизу, здесь и далее в логах вырезана приватная
> > информация, так как ошибка вопроизводится только в продакшене):
> >
> > 2016/02/14 11:09:20 [alert] 30161#30161: *1388932 zero size buf in output
> > t:0 r:0 f:0 0000000002387520 0000000002387520-0000000002389356
> > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server:
> > e6.mysite.com, request: "GET /place1/stream/cam13_low-5743015560.ts
> > HTTP/1.1", upstream:
> > "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host:
> > "e6.mysite.com", referrer: "https://mysite.com/"
> > 2016/02/14 11:09:23 [alert] 30160#30160: *1389653 zero size buf in output
> > t:0 r:0 f:0 00000000022BBC50 00000000022BBC50-00000000022BF185
> > 0000000000000000 0-0 while sending to client, client: HIDDENIPV4, server:
> > e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts
> > HTTP/1.1", upstream:
> > "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host:
> > "e6.mysite.com", referrer: "https://mysite.com/"
>
> [...]
>
> > Сразу выкладываю debug.log (18 мегабайт в распакованном виде):
> > https://kinetiksoft.com/thecloud/index.php/s/5ldvsZFiC2NjpXJ
> > Я обрезал только 10 секунд, за которые произошли две ошибки из краткого
> > лога в начале сообщения.
>
> Судя по логам, проблема возникает тогда, когда клиент закрывает
> соединение до получения ответа целиком. В обоих случаях перед
> alert'ом про "zero size buf" в логах видно такое:
>
> 2016/02/14 11:09:20 [info] 30161#30161: *1388932 epoll_wait() reported that
> client prematurely closed connection (32: Broken pipe) while reading
> upstream, client: HIDDENIPV4, server: e6.mysite.com, request: "GET
> /place1/stream/cam13_low-5743015560.ts HTTP/1.1", upstream:
> "https://[HIDDENIPV6]:443/place1/video/cam13_low-5743015560.ts", host:
> "e6.mysite.com", referrer: "https://mysite.com/" 2016/02/14 11:09:23 [info]
> 30160#30160: *1389653 epoll_wait() reported that client prematurely closed
> connection while reading upstream, client: HIDDENIPV4, server:
> e6.mysite.com, request: "GET /place1/stream/cam13_hi-5297110020.ts
> HTTP/1.1", upstream:
> "https://HIDDENIPV4:443/place1/video/cam13_hi-5297110020.ts", host:
> "e6.mysite.com", referrer: "https://mysite.com/"
>
> В этом случае nginx продолжает загружать файл с бекенда в кеш, а
> после окончания загрузки - пытается отправить последний буфер. И,
> видимо, где-то вместе с этим буфером проталкивает в цепочке
> фильтров что-то, что ранее счёл свободным (из-за ошибки записи
> клиенту), но по факту оно застряло где-то в цепочке фильтров.
>
> Что именно там происходит и как это поправить - надо смотреть
> подробнее. Для начала было бы неплохо убедиться, что сторонних
> модулей не используется, а если используются - то проверить,
> воспроизводится ли проблема без них. Кроме того, хотелось бы
> увидеть вывод "nginx -V".
>
> (Отмечу также, что в целом ошибка выглядит безвредно - собственно,
> логгируемая ошибка и есть основной его эффект. В остальном всё
> работает штатно.)

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

zero size buf in output при proxy_cache

iprok February 16, 2016 02:00PM

Re: zero size buf in output при proxy cache

Maxim Dounin February 16, 2016 03:06PM

Re: zero size buf in output при proxy cache

iprok February 16, 2016 03:19PM

Re: zero size buf in output при proxy cache

Иван February 25, 2016 10:20AM

Re: zero size buf in output при proxy cache

Maxim Dounin February 25, 2016 12:26PM

Re: zero size buf in output при proxy cache

Maxim Dounin March 04, 2016 10:58AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 167
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready