Maxim Dounin
May 07, 2021 05:38PM
Hello!

On Fri, May 07, 2021 at 10:40:52PM +0300, Gena Makhomed wrote:

> On 07.05.2021 21:19, Maxim Dounin wrote:
>
> >> [alert] 2569378#2569378: *449013402 open socket #29 left in connection 3
> >> [alert] 2569378#2569378: *449013403 open socket #32 left in connection 8
> >> [alert] 2569378#2569378: aborting
>
> [...]
>
> >> Конфиг бекенда, на котором была эта ошибка, примерно такой:
> >>
> >> aio threads;
> >> aio_write on;
> >
> > Скорее всего в данном случае дело в aio_write, см.
> > https://trac.nginx.org/nginx/ticket/2162.
>
> Понятно, спасибо!
>
> Максим, Вы говорите в комментариях к этому тикету:
>
> > It is not expected to affect real-world use cases,
> > though probably worth fixing anyway.
>
> У меня этот bug проявился именно что в real-world use case.

Ну видимо сильно зависит от use case'а. Такое может быть, когда кроме
aio-записи в кэш ничего больше в рабочем процессе не остаётся,
тогда shutdown может случиться раньше, чем надо. В норме такого
не бывает, т.к. shutdown задерживают медленные клиенты.

> > If the worker process exits prematurely while a requests updates
> > the cache with proxy_cache_use_stale updating;, the cache item
> > is stuck in the UPDATING state and won't be updated till the cache
> > is reloaded (for example, due to nginx restart or binary upgrade).
>
> > As already explained in comment:2, this is not expected to happen
> > in real-world use cases. If you want to be completely safe from
> > the particular issue, avoid using aio,
> > most notably avoid aio_write on;.
>
> Другими словами aio и aio_write пока что еще не production ready.
> Неожиданно, что этот момент не отображен в документации к nginx.

Тут зависит от того, с чем сравнивать. Если, скажем, с
пригодностью протокола HTTP/2 к production-использованию в
современном интернете - то и aio, и даже aio_write существенно
более production ready.

Но вообще сама по себе функциональность aio_write - достаточно
новая и достаточно сложная, и предназначена в первую очередь для
очень специфических конфигураций, где по другому никак. Если её
включать просто так для всего, да ещё и комбинировать с
механизмами, крайне чувствительными к любым отклонениям - можно
найти себе приключений. Как, впрочем, и много где ещё.

Патчи, что называется, welcome. Тем более, что основной вопрос
там - как это красиво исправить, по возможности вписав в
существующую инфраструктуру, не изобретая новых механизмов для
задержки shutdown'а.

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

ignore long locked inactive cache entry

Gena Makhomed May 07, 2021 11:26AM

Re: ignore long locked inactive cache entry

Maxim Dounin May 07, 2021 02:20PM

Re: ignore long locked inactive cache entry

Gena Makhomed May 07, 2021 03:42PM

Re: ignore long locked inactive cache entry

Maxim Dounin May 07, 2021 05:38PM

Re: ignore long locked inactive cache entry

Gena Makhomed May 08, 2021 05:26AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 78
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready