php-fpm segfault pcre

maxlink

php-fpm segfault pcre
« kdy: 23. 03. 2015, 16:21:20 »
Zdravim, setkal jsem se uz nekdo s timto problemem? Ubuntu server 14.04, PHP 5.5, Apache 2.4, php-fpm pres mod_proxy_fcgi, pri pouzivani preg_replace_callback v dmesg se segfauilt, cele php crashne.

[1324531.464709] php5-fpm[4859]: segfault at 7fff786d8ec8 ip 00007ff0645c154a sp 00007fff786d8ec0 error 6 in libpcre.so.3.13.1[7ff0645ae000+3d000]

Zkouseno nastavovat pcre.backtrack_limit a pcre.recursion_limit na i extremni hodnoty, bez efektu, jde nastavit velikost stacku pro php-fpm procesy?

Diky Max.


maxlink

Re:php-fpm segfault pcre
« Odpověď #1 kdy: 23. 03. 2015, 23:13:55 »
Zdravim, setkal jsem se uz nekdo s timto problemem? Ubuntu server 14.04, PHP 5.5, Apache 2.4, php-fpm pres mod_proxy_fcgi, pri pouzivani preg_replace_callback v dmesg se segfauilt, cele php crashne.

[1324531.464709] php5-fpm[4859]: segfault at 7fff786d8ec8 ip 00007ff0645c154a sp 00007fff786d8ec0 error 6 in libpcre.so.3.13.1[7ff0645ae000+3d000]

Zkouseno nastavovat pcre.backtrack_limit a pcre.recursion_limit na i extremni hodnoty, bez efektu, jde nastavit velikost stacku pro php-fpm procesy?

Diky Max.

Trochu jsem se posunul, hledam jak nastavit velikost zasobniku pro proces, tak aby
<?php
echo shell_exec('ulimit -s');
?>

ukazalo vetsi hodnotu nez 8192, netusite nekdo jak php-fpm k tomuto donutit? klasicky ulimit -s nepomaha.
Max.

DK

Re:php-fpm segfault pcre
« Odpověď #2 kdy: 24. 03. 2015, 07:14:11 »
Nastavit hodnoty pro uzivatele, pod kterym php-fpm bezi?

http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

maxlink

Re:php-fpm segfault pcre
« Odpověď #3 kdy: 24. 03. 2015, 12:05:23 »
Tak zjisten zajimavy problem, na 32bit php kod bezi bez problemu, stejny problem se projevu jak pod linuxem tak pod windows.

Nemate nekdo tuseni? Je to bug a reportnout to na php?
Max.

M. Kubelík

Re:php-fpm segfault pcre
« Odpověď #4 kdy: 24. 03. 2015, 13:21:13 »
Tohle nejspíš vypadá na problém v pcre. PHP by mělo jít zkompilovat s bundlovaným PCRE, podle toho, co píšete, to používá systémové, tak nejdřív asi zkusit tohle.

Také zapátrat v php bug trackeru, zda ta chyba nebyla již opravena, nepíšete, zda máte poslední php 5.5.

Obecně pokud máte malý snippet kódu, který bezpečně crashne poslední stabilní php, tak určitě bych zkusil zareportovat.
Obecně u segfaultů po vás pravděpodobně budou chtít backtrace z gdb, jak se to dělá je popsáno https://bugs.php.net/bugs-generating-backtrace.php