Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FW: sparc64(ultraT1)+Gentoo+nginx
On Sat, Apr 19, 2008 at 08:56:18PM +0400, Stanslav hidden wrote:
> Имеется такая связка sparc64(ultraT1)+Gentoo+nginx ещё плюс работает php в c
> php-fpm. Примерно раз из 10 при запросе любого пхп скрипта портится начало
> файла. Пробовал вынести nginx на др. сервер, но использовать fastcgi который
> находится на sparc64 - в этом случае никаких проблем нет. Заметил, что если
> использовать метод rtsig, то в этом случае вроде бы всё тоже работает
> нормально, но читал что этот метод не подходит для высоконагруженных
> проектов. Пробовал другие методы poll, select с ними такие же проблемы как и
> с epoll.
> Когда страница выдаётся испорченной, то в еррор лог пишется:
>
> *** glibc detected *** nginx: worker process: free(): invalid pointer:
> 0x0009ed70 ***
> 2008/04/19 20:51:00 [notice] 6681#0: signal 20 (SIGCHLD) received
> 2008/04/19 20:51:00 [alert] 6681#0: worker process 6752 exited on signal 6
> 2008/04/19 20:51:00 [notice] 6681#0: start worker process 6774
> 2008/04/19 20:51:00 [notice] 6681#0: signal 23 (SIGIO) received
> 2008/04/19 20:51:01 [notice] 6681#0: signal 20 (SIGCHLD) received
> 2008/04/19 20:51:01 [alert] 6681#0: worker process 6754 exited on signal 10
> 2008/04/19 20:51:01 [notice] 6681#0: start worker process 6775
> 2008/04/19 20:51:01 [notice] 6681#0: signal 23 (SIGIO) received
> *** glibc detected *** nginx: worker process: double free or corruption
> (!prev): 0x0008ca50 ***
> 2008/04/19 20:52:16 [notice] 6681#0: signal 20 (SIGCHLD) received
> 2008/04/19 20:52:16 [alert] 6681#0: worker process 6756 exited on signal 6
> 2008/04/19 20:52:16 [notice] 6681#0: start worker process 6776
> 2008/04/19 20:52:16 [notice] 6681#0: signal 23 (SIGIO) received
Нужно создать каталог, чтобы nginx мог туда писать.
Затем указать его в директиве
working_directory /path/to/dir;
и добавить
worker_rlimit_core 1024m;
http://sysoev.ru/nginx/docs/ngx_core_module.html#working_directory
http://sysoev.ru/nginx/docs/ngx_core_module.html#worker_rlimit_core
Насколько я понимаю, этого должно быть достаточно, чтобы по сигналам
создавались coredump'ы.
Нужно убедится, что nginx собран с отладочной информацией:
file nginx
..., not stripped
После этого нужно
gdb /path/to/nginx /path/to/core
bt
q
и прислать вывод мне.
--
Игорь Сысоев
http://sysoev.ru
|