Что можно с этим поделать кроме варианта вакинуть ZO? :)
7 июня 2008 г. 10:39 пользователь Vasiliy G Tolstov
<v.to...@selfip.ru> написал:
> Что можно с этим поделать кроме варианта вакинуть ZO? :)
В первую очередь - прогнать через валгринд.
http://bugs.php.net/bugs-getting-valgrind-log.php
Вполне возможно, что это кто-то (не ZO) портит память, а падает уже позже, при шатдауне.
Далее я бы попробовал отключать модули по-одному и смотреть на каком минимальном наборе модулей воспроизводится.
Есть еще подозрение, что это стандартный баг dynamic linker'а на FreeBSD, хотя бэктрэйс не похож на стандартный.
--
Wbr,
Antony Dovgal
Мне пишите, я им передам.
Но просто "падает версия X.Y.Z на FreeBSD A.B." и бэктрэйса недостаточно,
надо reproduce case, как вы понимаете.
--
Wbr,
Antony Dovgal
> Далее я бы попробовал отключать модули по-одному и смотреть на каком
> минимальном наборе модулей воспроизводится.
> Есть еще подозрение, что это стандартный баг 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.
Кстати cli-версия не падает.
7 июня 2008 г. 12:02 пользователь Antony Dovgal <to...@daylessday.org> написал:
Достаточно не стрипать 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
Я очень сомневаюсь, что кто-то будет расследовать проблемы при наличии сторонних патчей.
Поэтому от FPM надо избавиться в первую очередь и взять чистый PHP + ZO.
Если на этой комбинации не воспроизводится, то проблемы именно в FPM.
--
Wbr,
Antony Dovgal
7 июня 2008 г. 13:09 пользователь Antony Dovgal <to...@daylessday.org> написал:
На стандартном *FASTCGI*?
Я вижу упоминание только стандартного CLI.
--
Wbr,
Antony Dovgal
7 июня 2008 г. 13:14 пользователь Antony Dovgal <to...@daylessday.org> написал:
Значит, надо делать то, о чем я говорил в соседней ветке -
отключать Zend MM и запускать под валгриндом.
--
Wbr,
Antony Dovgal
Что то еще нужно?
7 июня 2008 г. 13:19 пользователь Antony Dovgal <to...@daylessday.org> написал:
Это ерунда, там ничего страшного нет.
А это, соб-но, мы уже видели.
> Что то еще нужно?
На других OS то же самое? Или это только на FreeBSD?
--
Wbr,
Antony Dovgal
На других OS пока не было возможности проверить, постараюсь на днях
проверить на gentoo.
Т.е. проблемы таки ZO.
Окей, передам.
--
Wbr,
Antony Dovgal
Свежачок-с. Корка возникает при попытке 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
А вот это как раз известная проблема линкера 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
Как оказалось нет. Проблема заключалась в imagick.so. Щас нет
возможности его дебажить, как только появится отрепорчу разработчикам.
> По поводу ZO: патч, который фиксит проблему -
> http://dev.daylessday.org/diff/zo_shutdown.diff
> Я пока не могу добиться от них чёткого ответа на вопрос почему этот патч
> нужен только для zend_extension's, обещали позже ответить.
Спасибо. Патч помог.
В смысле, проблема _исчезла_ при отключении imagick.so ?
Так это как раз и есть симптомы кривого линкера - dlclose() падает случайным образом,
причем если отключить/переставить местами экстеншены - проблема может уйти.
>> По поводу ZO: патч, который фиксит проблему -
>> http://dev.daylessday.org/diff/zo_shutdown.diff
>> Я пока не могу добиться от них чёткого ответа на вопрос почему этот патч
>> нужен только для zend_extension's, обещали позже ответить.
>
> Спасибо. Патч помог.
--
Wbr,
Antony Dovgal