Bug #77312 [Asn]: accel_replace_string_by_process_permanent: Assertion `0' failed

From: Date: Thu, 24 Jan 2019 14:26:39 +0000
Subject: Bug #77312 [Asn]: accel_replace_string_by_process_permanent: Assertion `0' failed
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-219174@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77312&edit=1 ID: 77312 Updated by: bukka@php.net Reported by: sjon at hortensius dot net Summary: accel_replace_string_by_process_permanent: Assertion `0' failed Status: Assigned Type: Bug Package: FPM related Operating System: archlinux PHP Version: 7.3.1 Assigned To: bukka Block user comment: N Private report: N New Comment: Ok I guess it will probably need a longer look then :) Previous Comments: ------------------------------------------------------------------------ [2019-01-24 14:09:22] nikic@php.net I'm no longer sure if using zend_alter_ini_entry is right in this context, I think it may break the ini_restore() functionality. (Which should probably restore to the ini value specified through php_value). ------------------------------------------------------------------------ [2019-01-24 14:03:23] bukka@php.net From a quick look I agree that we should use zend_alter_ini_entry_ex instead. However I would use it in fpm_php_apply_defines_ex and call it instead of fpm_php_zend_ini_alter_master which could be then dropped. That would also keep extension and disable_{functions,classes} working. ------------------------------------------------------------------------ [2019-01-16 13:10:26] sjon at hortensius dot net thanks, I've tried your patch (combined with the patch posted in #77430 ) but I did see another segfault with a similar backtrace - this time not for an entry set by nginx through fastcgi, but a setting that's directly configured in the php-fpm pool configuration through php_admin_value. That seems to go through this code: https://github.com/php/php-src/blob/1ad08256f349fa513157437abc4feb245cce03fc/sapi/fpm/fpm/fpm_php.c#L127 maybe that requires the same fix ? ------------------------------------------------------------------------ [2019-01-16 09:07:08] mnikulin at plesk dot com The bug can be reproduced by accessing any php file even just <?php echo 10; ?> Certainly, OpCache must be enabled in php.ini zend_extension=opcache.so opcache.enable=1 It happens during child exit, so simple way to reproduce is to set short timeout for on-demand manager in a pool .conf file pm = ondemand pm.process_idle_timeout = 2s catch_workers_output = yes php_value[error_reporting] = 22519 Unsure which bits of error_reporting should be set. The pool name in log messages after "child 9958 said into stderr" may be truncated. ------------------------------------------------------------------------ [2019-01-15 14:13:31] nikic@php.net This might do it: https://gist.github.com/nikic/c4c4ac241da02af410ce4f720c31d628 But fpm is really not my area... Maybe bukka could take a look? ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=77312 -- Edit this bug report at https://bugs.php.net/bug.php?id=77312&edit=1

« previous php.bugs (#219174) next »