Jacek Osiecki wrote: > Albo nie widzę, albo faktycznie nikt nie odpisał. > Czy w ogóle nikt tutaj nie używa php-fpm? > Świeżo stworzony vserver, wrzucone do niego php55, w tym php55-fpm.
Problem jest też z PHP 5.6 i chyba jest powiązany z grsecurity w kernelu (chyba, że u Ciebie występuje na nie-grsecowym). Mnie pomaga patch (w załączniku), którego sobie sam wystrugałem na własne potrzeby ale nie wiem czy należałoby go pchać do repozytorium. Co do problemu, to wg mnie wygląda to tak. Pamięć, która jest zwalniana przez to zakomentowane free() jest alokowana przez emalloc() (wewnętrzna funkcja php do zarządzania pamięcią). Powinna więc być zwolniona przez efree() ponieważ te funkcje emalloc(), efree, estrdup() itd. dodają sobie swoje własne sygnatury alokowanych kawałków i trzymają je dodatkowo w jakimś drzewie. Użycie free() w tym miejscu jest chyba pomyłką. Ale pomimo zmiany tego na efree() nadal nic to nie pomogło. Przeanalizowałem jeszcze trochę kodu ale w końcu skończyła mi się cierpliwość i czas i to zakomentowałem w całości. Wiem, że w ten sposób powataje memory leak ale IMHO jest niegroźny gdyż to jest wołane w funkcji php_shutdown_config(), która jest z kolei wołana przy kończeniu się procesu php. Memory leak jest więc w zasadzie czysto teoretyczny i tylko podczas kończenia działania, a nie podczas normalnej pracy. Jeżeli nie ma przeciwwskazań do zaaplikowania takiego bądź co bądź partyzanckiego patcha to mogę go wsadzić do repozytorium.
diff -ruNp php-5.6.13.orig/main/php_ini.c php-5.6.13/main/php_ini.c --- php-5.6.13.orig/main/php_ini.c 2015-09-03 02:02:45.000000000 +0200 +++ php-5.6.13/main/php_ini.c 2015-09-18 12:55:56.454284557 +0200 @@ -726,7 +726,7 @@ int php_shutdown_config(void) { zend_hash_destroy(&configuration_hash); if (php_ini_opened_path) { - free(php_ini_opened_path); +// free(php_ini_opened_path); php_ini_opened_path = NULL; } if (php_ini_scanned_files) {
_______________________________________________ pld-devel-pl mailing list pld-devel-pl@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl