Страница 1 из 1

php pcre.so -- coredump

Добавлено: 2009-10-02 15:06:53
GrayLAN
любопытная ситуация, вот такой вот системе
FreeBSD 7.2-RELEASE i386
PHP 5.2.11

Код: Выделить всё

#!/usr/local/bin/php
<?php
for ($i = 0; $i < 100000; $i++)
{
    $contents = 'sud' . str_repeat('a', $i) . 'bccess';
echo $i."\r\n";
    $q = preg_replace('/d(a)+b/', '', $contents);
    echo $i."\r\n";
}
?>
на i==920 php падает в корку

на других 2 серверах (FreeBSD 7.0-20080303-SNAP amd64, php 5.2.9 -- ставил не я) удалось повторить ошибку, в корку упал при i==3186

проблему удалось решить пересобрав pcre-7.9 с --disable-stack-for-recursion

добило же меня то что на доступных FreeBSD 6.x повторить ситуацию не получилось (pcre-7.9 так же)

глюк неприятный, при работе с mod_php apache серьезные скрипты валились

Код: Выделить всё

[Tue Sep 29 17:04:51 2009] [notice] child pid 2175 exit signal Illegal instruction (4)
[Tue Sep 29 17:04:52 2009] [notice] child pid 34794 exit signal Illegal instruction (4)
[Tue Sep 29 17:04:52 2009] [notice] child pid 2078 exit signal Illegal instruction (4)
[Tue Sep 29 17:06:36 2009] [notice] child pid 34798 exit signal Illegal instruction (4)
[Tue Sep 29 17:06:37 2009] [notice] child pid 34796 exit signal Illegal instruction (4)
кто нить еще сталкивался с аналогичной проблемой?? может есть более правильное решение?
в интернете информации за день мучений нашел крайне мало :smile:

Re: php pcre.so -- coredump

Добавлено: 2009-10-03 2:57:08
paradox
иллегал инструкшион проблема кривой сборки или оптимизации
и как он может быть завязана на pcre даже не представляю

Re: php pcre.so -- coredump

Добавлено: 2009-10-03 4:23:43
ProFTP
такое было, но скрипты не валились...

собрал без оптимизации, забил на это... скорость скриптом была нормальная - т.е. все равно, наверное, можно внимание не обращать...?

Re: php pcre.so -- coredump

Добавлено: 2009-10-03 9:04:00
zingel
раньше такое было если собрать с suhosin path

Re: php pcre.so -- coredump

Добавлено: 2009-10-05 9:25:05
GrayLAN
paradox писал(а):иллегал инструкшион проблема кривой сборки или оптимизации
и как он может быть завязана на pcre даже не представляю
при запуске cli

это на i386

Код: Выделить всё

917

Program received signal SIGSEGV, Segmentation fault.
0x288ea107 in match () from /usr/local/lib/libpcre.so.0
а это на amd64

Код: Выделить всё

3349

Program received signal SIGSEGV, Segmentation fault.
0x0000000801b4b307 in match () from /usr/local/lib/libpcre.so.0
на кривую оптимизацию покивал бы и я, но собиралось все без выкрутас..
к тому же, как я писал есть еще 2 машины которые собирал вообще другой человек, там тоже самое :cry:


попробую пересобрать без suhosin path

P.S. вообще довольно странно, думал что ошибка чаще встречается.