Re: падения воркера после включения max_conns

Maxim Dounin mdounin на mdounin.ru
Пн Май 14 13:59:46 UTC 2018


Hello!

On Mon, May 14, 2018 at 02:35:27PM +0500, Илья Шипицин wrote:

> привет!
> 
> используем nginx-1.13.9 на freebsd.
> 
> поменяли конфигурацию
> 
> было
> 
> upstream xxx {
>     server server1:80;
>     server server2:80;
>     server server3:80;
>     keepalive 10;
> }
> 
> стало
> 
> upstream xxx {
>     server server1:80 max_conns=5000;
>     server server2:80 max_conns=5000;
>     server server3:80 max_conns=5000;
>     keepalive 10;
>     zone xxx 10m;
> }
> 
> стали ловить вот такие падения
> 
> (gdb) bt
> #0  ngx_event_connect_peer (pc=0x827944638) at
> src/event/ngx_event_connect.c:41
> #1  0x00000000004720d3 in ngx_http_upstream_connect (r=0x807e13050,
> u=0x827944628) at src/http/ngx_http_upstream.c:1508
> #2  0x000000000046f1b7 in ngx_http_upstream_init_request (r=<value
> optimized out>) at ngx_event_timer.h:46

[...]

> у нас весьма развесистый конфиг, и есть сторонние модули (но по трейсу
> вроде они не задействованы). в списке изменений между 1.13.9 и 1.13.12 не
> вижу правок в этих местах.
> 
> 
> поразбираемся ?

Судя по падению, выбор пира вернул NGX_OK, но вернул при этом 
мусор вместо адреса бэкенда.  Наиболее вероятная причина - 
какой-нибудь сторонний балансировщик, который не умеет работать с 
блоками upstream{}, хранящимися в разделяемой памяти.  Так что я 
бы рекомендовал начать разбираться с выпиливания сторонних 
модулей.

-- 
Maxim Dounin
http://mdounin.ru/


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