ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Software caused connection abort



On Fri, 8 Jul 2005, Konstantin N. Bezruchenko wrote:

On Fri, Jul 08, 2005 at 03:38:03PM +0400, Igor Sysoev wrote:
On Fri, 8 Jul 2005, Konstantin N. Bezruchenko wrote:

On Fri, Jul 08, 2005 at 02:41:45PM +0400, Igor Sysoev wrote:
On Fri, 8 Jul 2005, Konstantin N. Bezruchenko wrote:

Сейчас поставил свежую версию nginx.
Увидел в error_log вот что:

2005/07/08 10:23:06 [crit] 154#0: accept() on 192.168.1.1:80 failed (53:
Software caused connection abort)

Раньше такого не было.
Правда раньше я и worker-ов ставил 10-20, а сейчас 1 стоит.
Может быть в этом причина?

Эта ошибка появляется, когда клиент закрывает соединение до того,
как nginx вызвал accept(). Можно попробавать увеличить число worker'ов.
Если она пропадёт или станет значительно реже, то у меня есть идея,
почему это может быть. OS, насколько я понимаю, FreeBSD ?

Сначала поднял кол-во worker до 2 - не помогло.
Затем до 10 - результат тот-же.

Ну в целом насколько я понимаю ситуация обычная? Клиент действительно может
закрыть соединение.

Да, это обычная ситуация.

А что за идея была? :-)

kevent() возвращает число сокетов, доступных для accept().
nginx в этом случае делает именно такое количество вызовов accept(),
экономя один системный вызов. Если nginx получает ошибку ECONNABORTED,
то он включает её в число сокетов, возвращённых в kevent().
Возможно, нужно не включать. Но в любом случае, если соединения
приходят хотя бы раз в пару секунд, это никак не влияет на ECONNABORTED.

Ведь ошибок таки стало меньше :-

Скорее всего, попался такой вот клиент.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.