Ошибка port_getn() при eventport на Solaris 10
Igor Sysoev
is at rambler-co.ru
Mon Mar 5 19:44:52 MSK 2007
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 at mail.ru> написал(а):
> >> Здравствуйте.
>
> >> Подскажите плз, работаю под 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
-------------- next part --------------
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)) {
More information about the nginx-ru
mailing list