Master процесс nginx 0.6.38 съедает всю доступную память

Igor Sysoev is at rambler-co.ru
Thu Sep 17 17:41:33 MSD 2009


On Thu, Sep 17, 2009 at 06:22:09PM +0500, Одинцов Павел wrote:

> Добрый вечер!
> 
> Так полагаю, nginx после лечения этих проблем будет корректно себя
> вести, если у конфига изменился размер, но будут проблемы, если он не
> изменился по размеру, но изменил содержимое?

Да.

> 2009/9/17 Igor Sysoev <is at rambler-co.ru>:
> > On Thu, Sep 17, 2009 at 02:59:21PM +0400, Maxim Dounin wrote:
> >
> >> Hello!
> >>
> >> On Thu, Sep 17, 2009 at 09:11:02AM +0500, Одинцов Павел wrote:
> >>
> >> > Доброе утро!
> >> >
> >> > Снова воспроизвелось на 0.6.38 и очень красиво воспроизвелось :)
> >>
> >> [...]
> >>
> >>
> >> > --- SIGHUP (Hangup) @ 0 (0) ---
> >> > gettimeofday({1253118667, 649143}, NULL) = 0
> >> > rt_sigreturn(0x667b29)                  = -1 EINTR (Interrupted system call)
> >> > gettimeofday({1253118667, 649273}, NULL) = 0
> >> > uname({sys="Linux", node="server4.hosting.reg.ru", ...}) = 0
> >> > open("/etc/nginx/nginx.conf", O_RDONLY) = 21
> >> > fstat(21, {st_mode=S_IFREG|0640, st_size=1023752, ...}) = 0
> >> > pread(21, "################################"..., 4096, 0) = 4096
> >>
> >> [...]
> >>
> >> > pread(21, "\tproxy_pass http://87.242.78.188"..., 4093, 1021200) = 2539
> >> > brk(0x1cc67000)                         = 0x1cc67000
> >> > pread(21, "", 4094, 1023739)            = 0
> >>
> >> [...]
> >>
> >> Судя по всему, nginx.conf переписали в процессе чтения его
> >> nginx'ом.  Прочиталось всего 1023739 байт (1021200 + 2539), а файл
> >> исходно был размером 1023752 байта.
> >>
> >> Баг это не отменяет, но вообще так делать нельзя, файлы надо
> >> менять атомарно (писать в другое место + rename).  Как минимум от
> >> подобных действий должна случаться ошибка чтения конфигурации (и
> >> отмена переконфигурации соответственно).
> >
> > В этом месте есть проблемы, которые я сейчас лечу, но если конфиг будет
> > так редактироваться без изменения длины, то возможны весьма разнообразные
> > эффекты.
> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >
> 
> 
> 
> -- 
> С уважением, Одинцов Павел

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





More information about the nginx-ru mailing list