On Mon, Sep 19, 2016 at 06:58:16PM -0400, Mikanoshi wrote: > Maxim Dounin Wrote: > ------------------------------------------------------- > > Всё это выглядит как ошибка ядра. Во FreeBSD 11 был существенно > > переделан sendfile() в части работы с флагом SF_NODISKIO - > > возможно, имеет смысл попробовать выключить sendfile и/или aio. > > Всё равно ошибка: > 2016/09/20 03:48:14 [crit] 16449#0: close() socket 44 failed (9: Bad file > descriptor) > 2016/09/20 03:49:02 [info] 16449#0: kevent() failed (4: Interrupted system > call) > > 44 сокет не показывается в lsof на момент зависания.
Значение errno=EBADF означает "сокет 44 не существует". После такой записи в лог номер 44 может получить сокет, открытый позже. Тогда новый сокет может попасть в выдачу lsof и быть ошибочно отождествлён с тем сокетом, который не удалось закрыть рабочему процессу. > Cокеты эти для соединений используется: > nginx 26627 www 44u IPv4 0xfffff80025951410 0t0 > TCP domain.ru:http->176-106-199-5.point.lviv.ua:28084 (ESTABLISHED) Здесь может быть повторное использование номера 44 для нового сокета. -- Eugene Berdnikov _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru