Fórum Root.cz
Hlavní témata => Server => Téma založeno: maxlink 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.
-
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.
-
Nastavit hodnoty pro uzivatele, pod kterym php-fpm bezi?
http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
-
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.
-
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