ПРОЕКТЫ 


  АРХИВ 


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: Ошибка port_getn() при eventport на Solaris 10



On Wed, Mar 07, 2007 at 10:57:23AM +0300, Alexey Rymonin wrote:

> >> IS> Патч прилагается. Он понижает уровень ошибки до отладчного, поскольку
> >> IS> это не критическая ошибка..
> >> 
> >> Спасибо... ошибка больше в логах не фигурирует...
> >> 
> >> IS> Что касается SIGQUIT и SIGHUP, то они оба вызывают плавное завершение
> >> IS> рабочих процессов: http://sysoev.ru/nginx/docs/control.html
> >> IS> и поэтому рабоиче процессы могут висеть минуты и даже часы при 
> >> скачивании
> >> IS> больших файлов.
> >> 
> >> а вот по SIGHUP боюсь что там что-то есть еще...
> >> я сделал новую сборку с дебагом, поставил eventport и два воркера....
> >> забиндил чисто на локалхот и энный порт....
> >> просто запускаю nginx и через 2-3 секунды (это в общем не важно)
> >> посылаю SIGHUP... после чего у меня в памяти висит уже 5 пидов....
> >> 1 главный и 4 воркера.... он почему-то пораждает новых, а старых не
> >> убивает.... и так дождаться пока он старых убъет мне не удалось
> >> (больше часа ждал при учете что на сервер никто не ходил)
> >> я приложил debug.log небольшого промежутка от запуска... далее
> >> sighup... и в завершении kill `pgrep
> >> nginx` поскольку после SIGHUP он на SIGQUIT больше не реагирует....
> >> :-(
> 
> > Прилагаемый патч должен помочь.
> 
> помогло.... реакция на SIGHUP стала моментальной и абсолютно
> адекватной...
> а такой вопросик, может не в тему.... или может устарелый
> а это нормально что даже при отсудствии соединения он постоянно
> опрашивает порты?
> я раньше думал что рабочие процессы в реедблокированное состояние падать 
> должны...

Что имеется под "постоянно опрашивает порты" ? Вот это:

2007/03/05 20:34:50 [debug] 10654#0: worker cycle
2007/03/05 20:34:50 [debug] 10653#0: worker cycle
2007/03/05 20:34:50 [debug] 10643#0: worker cycle
2007/03/05 20:34:50 [debug] 10654#0: accept mutex lock failed: 0
2007/03/05 20:34:50 [debug] 10653#0: accept mutex lock failed: 0
2007/03/05 20:34:50 [debug] 10643#0: accept mutex lock failed: 0
2007/03/05 20:34:50 [debug] 10654#0: eventport timer: 500
2007/03/05 20:34:50 [debug] 10653#0: eventport timer: 500
2007/03/05 20:34:50 [debug] 10643#0: eventport timer: 500
2007/03/05 20:34:51 [debug] 10653#0: timer delta: 510
2007/03/05 20:34:51 [debug] 10653#0: posted events 00000000

? Это не опрос портов, а раз в 500ms рабочие процессы пытаются захватить
accept lock для экслюзивного доступа к listen-сокетам.


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



 




Copyright © Lexa Software, 1996-2009.