fpm + ZO

9 views
Skip to first unread message

Nikita Stupin

unread,
Jun 6, 2008, 2:41:48 PM6/6/08
to highloa...@googlegroups.com
Установлен fpm 0.5.8 + ZendOptimizer 3.3.0
при запуске php-cgi -m получаю Segmentation fault (core dumped)
gdb /usr/local/bin/php-cgi /home/gourad/php-cgi.core
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
Core was generated by `php-cgi'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /lib/libcrypt.so.3...done.
Loaded symbols for /lib/libcrypt.so.3
Reading symbols from /lib/libm.so.4...done.
Loaded symbols for /lib/libm.so.4
Reading symbols from /lib/libz.so.3...done.
Loaded symbols for /lib/libz.so.3
Reading symbols from /usr/local/lib/libxml2.so.5...done.
Loaded symbols for /usr/local/lib/libxml2.so.5
Reading symbols from /usr/local/lib/libiconv.so.3...done.
Loaded symbols for /usr/local/lib/libiconv.so.3
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/memcache.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/blitz.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/blitz.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/bcmath.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/bcmath.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/bz2.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/bz2.so
Reading symbols from /usr/lib/libbz2.so.2...done.
Loaded symbols for /usr/lib/libbz2.so.2
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mysql.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mysql.so
Reading symbols from /usr/local/lib/mysql/libmysqlclient.so.16...done.
Loaded symbols for /usr/local/lib/mysql/libmysqlclient.so.16
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/zip.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/zip.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/zlib.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/zlib.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvmsg.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvmsg.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvsem.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvsem.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvshm.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/sysvshm.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ftp.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/ftp.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/curl.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/curl.so
Reading symbols from /usr/local/lib/libcurl.so.4...done.
Loaded symbols for /usr/local/lib/libcurl.so.4
Reading symbols from /usr/local/lib/libcares.so.1...done.
Loaded symbols for /usr/local/lib/libcares.so.1
Reading symbols from /usr/local/lib/libidn.so.16...done.
Loaded symbols for /usr/local/lib/libidn.so.16
Reading symbols from /usr/local/lib/libssh2.so.1...done.
Loaded symbols for /usr/local/lib/libssh2.so.1
Reading symbols from /usr/lib/libssl.so.4...done.
Loaded symbols for /usr/lib/libssl.so.4
Reading symbols from /lib/libcrypto.so.4...done.
Loaded symbols for /lib/libcrypto.so.4
Reading symbols from /usr/local/lib/libintl.so.8...done.
Loaded symbols for /usr/local/lib/libintl.so.8
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/gettext.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/gettext.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mbstring.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mbstring.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so
Reading symbols from /usr/local/lib/libmcrypt.so.8...done.
Loaded symbols for /usr/local/lib/libmcrypt.so.8
Reading symbols from /usr/local/lib/libltdl.so.4...done.
Loaded symbols for /usr/local/lib/libltdl.so.4
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mhash.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/mhash.so
Reading symbols from /usr/local/lib/libmhash.so.2...done.
Loaded symbols for /usr/local/lib/libmhash.so.2
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/shmop.so...done.
Loaded symbols for
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/shmop.so
Reading symbols from
/usr/local/lib/php/extensions/no-debug-non-zts-20060613/gd.so...done.
Loaded symbols for /usr/local/lib/php/extensions/no-debug-non-zts-20060613/gd.so
Reading symbols from /usr/local/lib/libt1.so.5...done.
Loaded symbols for /usr/local/lib/libt1.so.5
Reading symbols from /usr/local/lib/libfreetype.so.9...done.
Loaded symbols for /usr/local/lib/libfreetype.so.9
Reading symbols from /usr/local/lib/libX11.so.6...done.
Loaded symbols for /usr/local/lib/libX11.so.6
Reading symbols from /usr/local/lib/libXpm.so.4...done.
Loaded symbols for /usr/local/lib/libXpm.so.4
Reading symbols from /usr/local/lib/libpng.so.5...done.
Loaded symbols for /usr/local/lib/libpng.so.5
Reading symbols from /usr/local/lib/libjpeg.so.9...done.
Loaded symbols for /usr/local/lib/libjpeg.so.9
Reading symbols from /usr/local/lib/libXau.so.6...done.
Loaded symbols for /usr/local/lib/libXau.so.6
Reading symbols from /usr/local/lib/libXdmcp.so.6...done.
Loaded symbols for /usr/local/lib/libXdmcp.so.6
Reading symbols from /usr/lib/librpcsvc.so.3...done.
Loaded symbols for /usr/lib/librpcsvc.so.3
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0 0x0822e337 in zend_unregister_functions (functions=0x290066e0,
count=-1, function_table=0x0)
at /root/php-5.2.6/Zend/zend_API.c:1883
1883 i++;
(gdb) bt
#0 0x0822e337 in zend_unregister_functions (functions=0x290066e0,
count=-1, function_table=0x0)
at /root/php-5.2.6/Zend/zend_API.c:1883
#1 0x0822f13b in module_destructor (module=0x84f1e00) at
/root/php-5.2.6/Zend/zend_API.c:1937
#2 0x08234484 in zend_hash_apply_deleter (ht=0x8388c60, p=0x8509a80)
at /root/php-5.2.6/Zend/zend_hash.c:611
#3 0x0823451f in zend_hash_graceful_reverse_destroy (ht=0x8388c60) at
/root/php-5.2.6/Zend/zend_hash.c:646
#4 0x0822ac10 in zend_shutdown () at /root/php-5.2.6/Zend/zend.c:733
#5 0x081f358b in php_module_shutdown () at /root/php-5.2.6/main/main.c:1888
#6 0x082a949b in main (argc=2, argv=0xbfbfec94) at
/root/php-5.2.6/sapi/cgi/cgi_main.c:2193

Что можно с этим поделать кроме варианта вакинуть ZO? :)

Alex Vorona

unread,
Jun 6, 2008, 7:42:50 PM6/6/08
to highloa...@googlegroups.com
Nikita Stupin пишет:

> Установлен fpm 0.5.8 + ZendOptimizer 3.3.0
> при запуске php-cgi -m получаю Segmentation fault (core dumped)
> [...]

> (gdb) bt
> #0 0x0822e337 in zend_unregister_functions (functions=0x290066e0,
> count=-1, function_table=0x0)
> at /root/php-5.2.6/Zend/zend_API.c:1883
> #1 0x0822f13b in module_destructor (module=0x84f1e00) at
> /root/php-5.2.6/Zend/zend_API.c:1937
> #2 0x08234484 in zend_hash_apply_deleter (ht=0x8388c60, p=0x8509a80)
> at /root/php-5.2.6/Zend/zend_hash.c:611
> #3 0x0823451f in zend_hash_graceful_reverse_destroy (ht=0x8388c60) at
> /root/php-5.2.6/Zend/zend_hash.c:646
> #4 0x0822ac10 in zend_shutdown () at /root/php-5.2.6/Zend/zend.c:733
> #5 0x081f358b in php_module_shutdown () at /root/php-5.2.6/main/main.c:1888
> #6 0x082a949b in main (argc=2, argv=0xbfbfec94) at
> /root/php-5.2.6/sapi/cgi/cgi_main.c:2193
>
> Что можно с этим поделать кроме варианта вакинуть ZO? :)
>
отключить коредампы. Судя по бектрейсу, пхп вываливается уже на выходе
после отработки. В случае с php-fpm установить максимальное количество
запросов на чайлд равным 0(бесконечным), чтобы выхода не было просто :)
Наблюдал и иногда продолжнаю наблюдать такие ситуации, например при
сборке php с xslt и ZO. Вполне себе продакшн-сервера, работают :)

Vasiliy G Tolstov

unread,
Jun 7, 2008, 2:26:24 AM6/7/08
to highloa...@googlegroups.com
> Наблюдал и иногда продолжнаю наблюдать такие ситуации, например при
> сборке php с xslt и ZO. Вполне себе продакшн-сервера, работают :)

Хм, тоже самое вижу периодически. У Вас какая ОС стоит? У нас на
хостинге freebsd, и юзерам не очень нравиться, когда у них лежат корки в
домашних директориях... Падает на том же zend_unregister_functions ..
Не в курсе, есть ли какое-либо решение ?

--
Vasiliy G Tolstov <v.to...@selfip.ru>
Selfip.Ru

Alex Vorona

unread,
Jun 7, 2008, 2:31:55 AM6/7/08
to highloa...@googlegroups.com
Vasiliy G Tolstov пишет:

>> Наблюдал и иногда продолжнаю наблюдать такие ситуации, например при
>> сборке php с xslt и ZO. Вполне себе продакшн-сервера, работают :)
>>
>
> Хм, тоже самое вижу периодически. У Вас какая ОС стоит?
freebsd

> У нас на
> хостинге freebsd, и юзерам не очень нравиться, когда у них лежат корки в
> домашних директориях... Падает на том же zend_unregister_functions ..
> Не в курсе, есть ли какое-либо решение ?
>
>
только костыли знаю - отключить корки, отказаться от apachectl graceful и тп

Vasiliy G Tolstov

unread,
Jun 7, 2008, 2:39:43 AM6/7/08
to highloa...@googlegroups.com
А разработчикам пробовали писать? Просто я вот уже три года работаю и
по-моему такая проблема все три года и существует....
Я вот думаю, если составить им баг репорт - сделают что-нибудь?

Nikita Stupin

unread,
Jun 7, 2008, 3:33:17 AM6/7/08
to highloa...@googlegroups.com
У меня freebsd 6.3.
По поводу написать разработчикам - я заходил к ним на форум там
вопросы по падению зенда, мемликах и т.д. присутствуют примерно
годовой давности, комментариев от разработчиков нет. Что интересно -
на стандартном портовом php таких проблем не наблюдается. Костыли
попробую спасибо.

7 июня 2008 г. 10:39 пользователь Vasiliy G Tolstov
<v.to...@selfip.ru> написал:

Antony Dovgal

unread,
Jun 7, 2008, 3:59:59 AM6/7/08
to highloa...@googlegroups.com
On 06.06.2008 22:41, Nikita Stupin wrote:
> Установлен fpm 0.5.8 + ZendOptimizer 3.3.0
> при запуске php-cgi -m получаю Segmentation fault (core dumped)
> gdb /usr/local/bin/php-cgi /home/gourad/php-cgi.core

> Что можно с этим поделать кроме варианта вакинуть ZO? :)

В первую очередь - прогнать через валгринд.
http://bugs.php.net/bugs-getting-valgrind-log.php
Вполне возможно, что это кто-то (не ZO) портит память, а падает уже позже, при шатдауне.

Далее я бы попробовал отключать модули по-одному и смотреть на каком минимальном наборе модулей воспроизводится.
Есть еще подозрение, что это стандартный баг dynamic linker'а на FreeBSD, хотя бэктрэйс не похож на стандартный.

--
Wbr,
Antony Dovgal

Antony Dovgal

unread,
Jun 7, 2008, 4:02:06 AM6/7/08
to highloa...@googlegroups.com
On 07.06.2008 11:33, Nikita Stupin wrote:
> У меня freebsd 6.3.
> По поводу написать разработчикам - я заходил к ним на форум там
> вопросы по падению зенда, мемликах и т.д. присутствуют примерно
> годовой давности, комментариев от разработчиков нет. Что интересно -
> на стандартном портовом php таких проблем не наблюдается. Костыли
> попробую спасибо.

Мне пишите, я им передам.

Но просто "падает версия X.Y.Z на FreeBSD A.B." и бэктрэйса недостаточно,
надо reproduce case, как вы понимаете.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 7, 2008, 5:00:13 AM6/7/08
to highloa...@googlegroups.com
> В первую очередь - прогнать через валгринд.
> http://bugs.php.net/bugs-getting-valgrind-log.php
> Вполне возможно, что это кто-то (не ZO) портит память, а падает уже позже,
> при шатдауне.
To get a meaningful log you must have PHP configured with
--enable-debug and disable Zend memory manager.
Проблема в том что ZO не работает при --enable-debug.

> Далее я бы попробовал отключать модули по-одному и смотреть на каком
> минимальном наборе модулей воспроизводится.
> Есть еще подозрение, что это стандартный баг dynamic linker'а на FreeBSD,
> хотя бэктрэйс не похож на стандартный.

[PHP Modules]
cgi-fcgi
ctype
date
dom
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
posix
Reflection
session
SimpleXML
SPL
SQLite
standard
tokenizer
xml
xmlreader
xmlwriter
Zend Optimizer

[Zend Modules]
Zend Extension Manager
Zend Optimizer

Т.е. то что собралось по дефолту + ZO.

Nikita Stupin

unread,
Jun 7, 2008, 5:05:31 AM6/7/08
to highloa...@googlegroups.com
reproduced case простой:
Ставим фрю 6.2.-6.3 у меня воспроизводилось на обоих. 32 или 64 бита
неважно, насколько я понял там отличаются только смещения в bt.
собираем fpm ./configure --enable-fastcgi --enable-fpm
подлючаем ZO - ./install
/usr/local/bin/php-cgi -m
Получаем:
Segmentation fault (core dumped)

Кстати cli-версия не падает.

7 июня 2008 г. 12:02 пользователь Antony Dovgal <to...@daylessday.org> написал:

Antony Dovgal

unread,
Jun 7, 2008, 5:06:02 AM6/7/08
to highloa...@googlegroups.com
On 07.06.2008 13:00, Nikita Stupin wrote:
>> В первую очередь - прогнать через валгринд.
>> http://bugs.php.net/bugs-getting-valgrind-log.php
>> Вполне возможно, что это кто-то (не ZO) портит память, а падает уже позже,
>> при шатдауне.
> To get a meaningful log you must have PHP configured with
> --enable-debug and disable Zend memory manager.
> Проблема в том что ZO не работает при --enable-debug.

Достаточно не стрипать debug symbols, уже хоть что-то будет.

А Zend MM можно и руками в исходниках отключить:
Index: Zend/zend_alloc.c
===================================================================
RCS file: /repository/ZendEngine2/zend_alloc.c,v
retrieving revision 1.144.2.3.2.43.2.12
diff -u -p -r1.144.2.3.2.43.2.12 zend_alloc.c
--- Zend/zend_alloc.c 11 May 2008 11:46:44 -0000 1.144.2.3.2.43.2.12
+++ Zend/zend_alloc.c 7 Jun 2008 09:05:26 -0000
@@ -2484,7 +2484,7 @@ static void alloc_globals_ctor(zend_allo
alloc_globals->mm_heap = zend_mm_startup();

tmp = getenv("USE_ZEND_ALLOC");
- if (tmp) {
+ if (1) {
alloc_globals->mm_heap->use_zend_alloc = zend_atoi(tmp, 0);
if (!alloc_globals->mm_heap->use_zend_alloc) {
alloc_globals->mm_heap->_malloc = malloc;


> Т.е. то что собралось по дефолту + ZO.

Как мне может помочь этот список?

--
Wbr,
Antony Dovgal

Antony Dovgal

unread,
Jun 7, 2008, 5:09:17 AM6/7/08
to highloa...@googlegroups.com
On 07.06.2008 13:05, Nikita Stupin wrote:
> reproduced case простой:
> Ставим фрю 6.2.-6.3 у меня воспроизводилось на обоих. 32 или 64 бита
> неважно, насколько я понял там отличаются только смещения в bt.
> собираем fpm ./configure --enable-fastcgi --enable-fpm
> подлючаем ZO - ./install
> /usr/local/bin/php-cgi -m
> Получаем:
> Segmentation fault (core dumped)
>
> Кстати cli-версия не падает.

Я очень сомневаюсь, что кто-то будет расследовать проблемы при наличии сторонних патчей.
Поэтому от FPM надо избавиться в первую очередь и взять чистый PHP + ZO.
Если на этой комбинации не воспроизводится, то проблемы именно в FPM.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 7, 2008, 5:11:34 AM6/7/08
to highloa...@googlegroups.com
Тони я именно об этом и писал, что на стандартном PHP собранном из
портов проблема отсутствует. То есть проблема актуальна только при
использовании fpm.

7 июня 2008 г. 13:09 пользователь Antony Dovgal <to...@daylessday.org> написал:

Antony Dovgal

unread,
Jun 7, 2008, 5:14:22 AM6/7/08
to highloa...@googlegroups.com
On 07.06.2008 13:11, Nikita Stupin wrote:
> Тони я именно об этом и писал, что на стандартном PHP собранном из
> портов проблема отсутствует. То есть проблема актуальна только при
> использовании fpm.

На стандартном *FASTCGI*?
Я вижу упоминание только стандартного CLI.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 7, 2008, 5:16:55 AM6/7/08
to highloa...@googlegroups.com
На стандатном fastcgi тоже проблемы нет.

7 июня 2008 г. 13:14 пользователь Antony Dovgal <to...@daylessday.org> написал:

Antony Dovgal

unread,
Jun 7, 2008, 5:19:03 AM6/7/08
to highloa...@googlegroups.com
On 07.06.2008 13:16, Nikita Stupin wrote:
> На стандатном fastcgi тоже проблемы нет.

Значит, надо делать то, о чем я говорил в соседней ветке -
отключать Zend MM и запускать под валгриндом.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 11, 2008, 5:37:25 AM6/11/08
to highloa...@googlegroups.com
Как раз появилась машинка для воспроизведения данной проблемы. Убрал
--strip-debug из configure сделал setenv USE_ZEND_ALLOC 0 Собстно лог
valgrind'а:
==99832== My PID = 99832, parent PID = 541. Prog and args are:
==99832== /usr/local/bin/php-cgi
==99832== -m
==99832== Estimated CPU clock rate is 3009 MHz
==99832== For more details, rerun with: -v
==99832==
==99832== Invalid read of size 1
==99832== at 0x3C037DC8: memcpy (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==99832== by 0x8234030: _zend_hash_add_or_update (zend_hash.c:253)
==99832== by 0x3C5FA3CF: (within
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so)
==99832== Address 0x3C3FF6B3 is not stack'd, malloc'd or free'd
==99832==
==99832== Invalid read of size 1
==99832== at 0x3C037DCD: memcpy (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==99832== by 0x8234030: _zend_hash_add_or_update (zend_hash.c:253)
==99832== by 0x3C5FA3CF: (within
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so)
==99832== Address 0x3C3FF6B2 is not stack'd, malloc'd or free'd
==99832==
==99832== Invalid read of size 1
==99832== at 0x3C037DD3: memcpy (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==99832== by 0x8234030: _zend_hash_add_or_update (zend_hash.c:253)
==99832== by 0x3C5FA3CF: (within
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so)
==99832== Address 0x3C3FF6B1 is not stack'd, malloc'd or free'd
==99832==
==99832== Invalid read of size 1
==99832== at 0x3C037DDA: memcpy (in
/usr/local/lib/valgrind/vgpreload_memcheck.so)
==99832== by 0x8234030: _zend_hash_add_or_update (zend_hash.c:253)
==99832== by 0x3C5FA3CF: (within
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so)
==99832== Address 0x3C3FF6B0 is not stack'd, malloc'd or free'd
==99832==
==99832== Invalid read of size 4
==99832== at 0x822E373: zend_unregister_functions (zend_API.c:1883)
==99832== by 0x822F176: module_destructor (zend_API.c:1937)
==99832== by 0x82344BF: zend_hash_apply_deleter (zend_hash.c:611)
==99832== by 0x823455A: zend_hash_graceful_reverse_destroy (zend_hash.c:646)
==99832== by 0x822AC4B: zend_shutdown (zend.c:733)
==99832== by 0x81F35C6: php_module_shutdown (main.c:1888)
==99832== by 0x82A94A6: main (cgi_main.c:2193)
==99832== Address 0x3C6946E0 is not stack'd, malloc'd or free'd
==99832==
==99832== Process terminating with default action of signal 11
(SIGSEGV): dumping core
==99832== at 0x822E373: zend_unregister_functions (zend_API.c:1883)
==99832== by 0x822F176: module_destructor (zend_API.c:1937)
==99832== by 0x82344BF: zend_hash_apply_deleter (zend_hash.c:611)
==99832== by 0x823455A: zend_hash_graceful_reverse_destroy (zend_hash.c:646)
==99832== by 0x822AC4B: zend_shutdown (zend.c:733)
==99832== by 0x81F35C6: php_module_shutdown (main.c:1888)
==99832== by 0x82A94A6: main (cgi_main.c:2193)
==99832== Core dumping not implemented. Please re-run valgrind after
fixing the crash.
==99832==
==99832== ERROR SUMMARY: 5193 errors from 5 contexts (suppressed: 0 from 0)
==99832== malloc/free: in use at exit: 1370656 bytes in 14629 blocks.
==99832== malloc/free: 24271 allocs, 9642 frees, 2013553 bytes allocated.
==99832== For a detailed leak analysis, rerun with: --leak-check=yes
==99832== For counts of detected errors, rerun with: -v

Что то еще нужно?

7 июня 2008 г. 13:19 пользователь Antony Dovgal <to...@daylessday.org> написал:

Antony Dovgal

unread,
Jun 11, 2008, 5:47:23 AM6/11/08
to highloa...@googlegroups.com
On 11.06.2008 13:37, Nikita Stupin wrote:
> Как раз появилась машинка для воспроизведения данной проблемы. Убрал
> --strip-debug из configure сделал setenv USE_ZEND_ALLOC 0 Собстно лог
> valgrind'а:
> ==99832== My PID = 99832, parent PID = 541. Prog and args are:
> ==99832== /usr/local/bin/php-cgi
> ==99832== -m
> ==99832== Estimated CPU clock rate is 3009 MHz
> ==99832== For more details, rerun with: -v
> ==99832==
> ==99832== Invalid read of size 1
> ==99832== at 0x3C037DC8: memcpy (in
> /usr/local/lib/valgrind/vgpreload_memcheck.so)
> ==99832== by 0x8234030: _zend_hash_add_or_update (zend_hash.c:253)
> ==99832== by 0x3C5FA3CF: (within
> /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so)
> ==99832== Address 0x3C3FF6B3 is not stack'd, malloc'd or free'd

Это ерунда, там ничего страшного нет.

А это, соб-но, мы уже видели.

> Что то еще нужно?

На других OS то же самое? Или это только на FreeBSD?

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 11, 2008, 5:50:04 AM6/11/08
to highloa...@googlegroups.com
2008/6/11 Antony Dovgal <to...@daylessday.org>:

> На других OS то же самое? Или это только на FreeBSD?

На других OS пока не было возможности проверить, постараюсь на днях
проверить на gentoo.

fixxxer

unread,
Jun 11, 2008, 3:19:11 PM6/11/08
to highload-php-ru
протестил

Linux user-laptop 2.6.24-18-generic #1 SMP Wed May 28 20:27:26 UTC
2008 i686 GNU/Linux

php-5.2.6 как с fpm, так и стандартный cgi-fcgi (Configure Command =>
'./configure' '--enable-fastcgi')

Zend Optimizer 3.3.3

reproduce case такой же -- php-cgi -m

valgrind log:
fpm: http://symbi.org/misc/php-valgrind.log
standard cgi-fcgi: http://symbi.org/misc/php-valgrind-std-fcgi.log (то
же самое)

On Jun 11, 1:50 pm, "Nikita Stupin" <myn...@gourad.biz> wrote:
> 2008/6/11 Antony Dovgal <t...@daylessday.org>:

Antony Dovgal

unread,
Jun 11, 2008, 3:45:39 PM6/11/08
to highloa...@googlegroups.com
On 11.06.2008 23:19, fixxxer wrote:
> протестил
>
> Linux user-laptop 2.6.24-18-generic #1 SMP Wed May 28 20:27:26 UTC
> 2008 i686 GNU/Linux
>
> php-5.2.6 как с fpm, так и стандартный cgi-fcgi (Configure Command =>
> './configure' '--enable-fastcgi')
>
> Zend Optimizer 3.3.3
>
> reproduce case такой же -- php-cgi -m
>
> valgrind log:
> fpm: http://symbi.org/misc/php-valgrind.log
> standard cgi-fcgi: http://symbi.org/misc/php-valgrind-std-fcgi.log (то
> же самое)

Т.е. проблемы таки ZO.
Окей, передам.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 15, 2008, 5:27:20 PM6/15/08
to highloa...@googlegroups.com
Здравствуйте.

Свежачок-с. Корка возникает при попытке reload'а конфиг тот же самый.
Бэктрейс ниже, в ближайшее время попробую пересобрать php без стрипа
дебага и прогнать под valgrind'ом, если бэктрейса окажется недостаточно.

#0 0x00000000 in ?? ()
#1 0x2b61a478 in ?? () from
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
#2 0x2b72bd2c in zend_extension_entry ()
from /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
#3 0x28387558 in ?? () from /libexec/ld-elf.so.1
#4 0xbfbfc5a8 in ?? ()
#5 0x28368266 in _rtld_error () from /libexec/ld-elf.so.1
#6 0x2b6fffb4 in ?? () from
/usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
#7 0x28385558 in tls_dtv_generation () from /libexec/ld-elf.so.1
#8 0x28387558 in ?? () from /libexec/ld-elf.so.1
#9 0xbfbfc5b8 in ?? ()
#10 0x283687b6 in elf_hash () from /libexec/ld-elf.so.1
#11 0x2836b0a0 in dlclose () from /libexec/ld-elf.so.1
#12 0x082216a1 in zend_llist_destroy (l=0x8388c88) at
/root/php-5.2.6/Zend/zend_llist.c:114
#13 0x082326bd in zend_shutdown_extensions () at
/root/php-5.2.6/Zend/zend_extensions.c:167
#14 0x0822ac45 in zend_shutdown () at /root/php-5.2.6/Zend/zend.c:741
#15 0x081f358b in php_module_shutdown () at /root/php-5.2.6/main/main.c:1888
#16 0x082ae4a7 in fpm_php_cleanup (which=8, arg=0x0) at
/root/php-5.2.6/sapi/cgi/fpm/fpm_php.c:126
#17 0x082ace63 in fpm_cleanups_run (type=8) at
/root/php-5.2.6/sapi/cgi/fpm/fpm_cleanup.c:50
#18 0x082ae91b in fpm_pctl_action_last () at
/root/php-5.2.6/sapi/cgi/fpm/fpm_process_ctl.c:85
#19 0x082aebe0 in fpm_pctl_child_exited () at
/root/php-5.2.6/sapi/cgi/fpm/fpm_process_ctl.c:237
#20 0x082ac4a8 in fpm_children_bury () at
/root/php-5.2.6/sapi/cgi/fpm/fpm_children.c:234
#21 0x082ae281 in fpm_got_signal (fd=4, ev=2, arg=0x0) at
/root/php-5.2.6/sapi/cgi/fpm/fpm_events.c:74
#22 0x082b0428 in _fpm_event_base_loop (base=0x8654200, flags=0) at
event.c:315
#23 0x082b0634 in _fpm_event_loop (flags=0) at event.c:360
#24 0x082ae3b8 in fpm_event_loop () at
/root/php-5.2.6/sapi/cgi/fpm/fpm_events.c:126
#25 0x082ab3ef in fpm_run (max_requests=0x0) at
/root/php-5.2.6/sapi/cgi/fpm/fpm.c:70
#26 0x082a9504 in main (argc=4, argv=0xbfbfebf0) at
/root/php-5.2.6/sapi/cgi/cgi_main.c:1554

Antony Dovgal

unread,
Jun 16, 2008, 6:35:34 AM6/16/08
to highloa...@googlegroups.com
On 16.06.2008 01:27, Nikita Stupin wrote:
> Здравствуйте.
>
> Свежачок-с. Корка возникает при попытке reload'а конфиг тот же самый.
> Бэктрейс ниже, в ближайшее время попробую пересобрать php без стрипа
> дебага и прогнать под valgrind'ом, если бэктрейса окажется недостаточно.

А вот это как раз известная проблема линкера FreeBSD, об этом надо репортить разработчикам FreeBSD.



> #0 0x00000000 in ?? ()
> #1 0x2b61a478 in ?? () from
> /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
> #2 0x2b72bd2c in zend_extension_entry ()
> from /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
> #3 0x28387558 in ?? () from /libexec/ld-elf.so.1
> #4 0xbfbfc5a8 in ?? ()
> #5 0x28368266 in _rtld_error () from /libexec/ld-elf.so.1
> #6 0x2b6fffb4 in ?? () from
> /usr/local/Zend/lib/Optimizer-3.3.3/php-5.2.x/ZendOptimizer.so
> #7 0x28385558 in tls_dtv_generation () from /libexec/ld-elf.so.1
> #8 0x28387558 in ?? () from /libexec/ld-elf.so.1
> #9 0xbfbfc5b8 in ?? ()
> #10 0x283687b6 in elf_hash () from /libexec/ld-elf.so.1
> #11 0x2836b0a0 in dlclose () from /libexec/ld-elf.so.1

По поводу ZO: патч, который фиксит проблему - http://dev.daylessday.org/diff/zo_shutdown.diff
Я пока не могу добиться от них чёткого ответа на вопрос почему этот
патч нужен только для zend_extension's, обещали позже ответить.

--
Wbr,
Antony Dovgal

Nikita Stupin

unread,
Jun 17, 2008, 4:11:36 AM6/17/08
to highloa...@googlegroups.com
> А вот это как раз известная проблема линкера FreeBSD, об этом надо репортить
> разработчикам FreeBSD.

Как оказалось нет. Проблема заключалась в imagick.so. Щас нет
возможности его дебажить, как только появится отрепорчу разработчикам.

> По поводу ZO: патч, который фиксит проблему -
> http://dev.daylessday.org/diff/zo_shutdown.diff
> Я пока не могу добиться от них чёткого ответа на вопрос почему этот патч
> нужен только для zend_extension's, обещали позже ответить.

Спасибо. Патч помог.

Antony Dovgal

unread,
Jun 18, 2008, 7:10:17 AM6/18/08
to highloa...@googlegroups.com
On 17.06.2008 12:11, Nikita Stupin wrote:
>> А вот это как раз известная проблема линкера FreeBSD, об этом надо репортить
>> разработчикам FreeBSD.
>
> Как оказалось нет. Проблема заключалась в imagick.so. Щас нет
> возможности его дебажить, как только появится отрепорчу разработчикам.

В смысле, проблема _исчезла_ при отключении imagick.so ?
Так это как раз и есть симптомы кривого линкера - dlclose() падает случайным образом,
причем если отключить/переставить местами экстеншены - проблема может уйти.

>> По поводу ZO: патч, который фиксит проблему -
>> http://dev.daylessday.org/diff/zo_shutdown.diff
>> Я пока не могу добиться от них чёткого ответа на вопрос почему этот патч
>> нужен только для zend_extension's, обещали позже ответить.
>
> Спасибо. Патч помог.


--
Wbr,
Antony Dovgal

Reply all
Reply to author
Forward
0 new messages