FW: sparc64(ultraT1)+Gentoo+nginx
Igor Sysoev
is at rambler-co.ru
Sat Apr 19 22:08:47 MSD 2008
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
More information about the nginx-ru
mailing list