ПРОЕКТЫ 


  АРХИВ 


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 Fri, Mar 02, 2007 at 10:29:45AM +0300, Alexey Rymonin wrote:

> Вложил debug.log + error.log + access.log
> сформированной открытиет одной html странички на которой было куча
> несуществующих картинок.... этого достаточно чтобы баги поползли :-)
> 
> Буду очень благодарен за помощь...
> 
> 
> > Думаю, стоит прилагать отладочный лог.
> 
> >> 27.02.07, Alexey Rymonin <x-phoenix@xxxxxxx> написал(а):
> >> Здравствуйте.
> 
> >> Подскажите плз, работаю под Solaris 10. nginx в дефолтовской
> >> конфигурации бегает нормально, но как только я ставлю
> >> events {
> >>     use eventport;
> >>     worker_connections  1024;
> >> }
> >> сразу в error.log, при ладе очень маленьких нагрузках начинают
> >> плодиться следующие записи....
> 
> >> 2007/02/27 22:28:04 [alert] 2552#0: port_getn() error fd:9 ev:0008
> >> 2007/02/27 22:28:04 [alert] 2552#0: port_getn() error fd:11 ev:0008
> >> 2007/02/27 22:28:40 [alert] 2552#0: port_getn() error fd:8 ev:0008
> 
> >> так же nginx начинает выгружить (по SIGQUIT) ощутимое время (порядка
> >> 10 сек.) а результатов по SIGHUP иной раз можно и не дождаться.....
> >>
> >> Что с этим можно сделать, кроме того как не использовать eventport?

Патч прилагается. Он понижает уровень ошибки до отладчного, поскольку
это не критическая ошибка.

Что касается SIGQUIT и SIGHUP, то они оба вызывают плавное завершение
рабочих процессов: http://sysoev.ru/nginx/docs/control.html
и поэтому рабоиче процессы могут висеть минуты и даже часы при скачивании
больших файлов.


-- 
Игорь Сысоев
http://sysoev.ru
Index: src/event/modules/ngx_eventport_module.c
===================================================================
--- src/event/modules/ngx_eventport_module.c    (revision 447)
+++ src/event/modules/ngx_eventport_module.c    (working copy)
@@ -467,9 +467,9 @@
                            event_list[i].portev_object, revents);
 
             if (revents & (POLLERR|POLLHUP|POLLNVAL)) {
-                ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
-                              "port_getn() error fd:%d ev:%04Xd",
-                              event_list[i].portev_object, revents);
+                ngx_log_debug2(NGX_LOG_DEBUG_EVENT, cycle->log, 0,
+                               "port_getn() error fd:%d ev:%04Xd",
+                               event_list[i].portev_object, revents);
             }
 
             if (revents & ~(POLLIN|POLLOUT|POLLERR|POLLHUP|POLLNVAL)) {


 




Copyright © Lexa Software, 1996-2009.