ПРОЕКТЫ 


  АРХИВ 


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: Master процесс nginx 0 .6.38 съедает всю доступную память



On Thu, Sep 17, 2009 at 04:04:06PM +0400, Igor Sysoev wrote:

> 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).  Как минимум от 
> > подобных действий должна случаться ошибка чтения конфигурации (и 
> > отмена переконфигурации соответственно).
> 
> В этом месте есть проблемы, которые я сейчас лечу, но если конфиг будет
> так редактироваться без изменения длины, то возможны весьма разнообразные
> эффекты.

Похоже, утечка памяти была связана только с перловым модулем, а вообще
nginx на такое ругается и не использует эту конфигурацию.


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



 




Copyright © Lexa Software, 1996-2009.