2016-04-20 79 views
1

我正在运行php-7.0.2与codeigniter(一个php mvc框架)。我有一些导致核心转储的分段错误。而且,我发现当php-fpm子进程关闭并重新启动时,这些分段错误是随机发生的。我不知道为什么。php7.0.2程序终止信号11,分段错误

使用gdb的 “BT”,显示核心转储:

Core was generated by `php-fpm: pool www                '. 
Program terminated with signal 11, Segmentation fault. 
\#0 zend_string_release (ht=0x114dae0) at /home/smt/phpng/php-7.0.2/Zend/zend_string.h:269 
269  /home/smt/phpng/php-7.0.2/Zend/zend_string.h: No such file or directory. 
     in /home/smt/phpng/php-7.0.2/Zend/zend_string.h 
Missing separate debuginfos, use: debuginfo-install php7-7.0.2-20160407105024.x86_64 
(gdb) bt 
\#0 zend_string_release (ht=0x114dae0) at /home/smt/phpng/php-7.0.2/Zend/zend_string.h:269 
\#1 zend_hash_destroy (ht=0x114dae0) at /home/smt/phpng/php-7.0.2/Zend/zend_hash.c:1273 
\#2 0x000000000080647b in module_destructor (module=0x14b6ae0) 
    at /home/smt/phpng/php-7.0.2/Zend/zend_API.c:2509 
\#3 0x000000000080075c in module_destructor_zval (zv=<value optimized out>) 
    at /home/smt/phpng/php-7.0.2/Zend/zend.c:615 
\#4 0x000000000080dcff in _zend_hash_del_el_ex (ht=0x1154780) 
    at /home/smt/phpng/php-7.0.2/Zend/zend_hash.c:1013 
\#5 _zend_hash_del_el (ht=0x1154780) at /home/smt/phpng/php-7.0.2/Zend/zend_hash.c:1037 
\#6 zend_hash_graceful_reverse_destroy (ht=0x1154780) at /home/smt/phpng/php-7.0.2/Zend/zend_hash.c:1489 
\#7 0x0000000000800096 in zend_shutdown() at /home/smt/phpng/php-7.0.2/Zend/zend.c:840 
\#8 0x00000000007a2a6a in php_module_shutdown() at /home/smt/phpng/php-7.0.2/main/main.c:2339 
\#9 0x000000000089e45d in main (argc=<value optimized out>, argv=<value optimized out>) 
    at /home/smt/phpng/php-7.0.2/sapi/fpm/fpm/fpm_main.c:1997 
(gdb) quit 

的PHP-fpm.log是如下:

[20-Apr-2016 08:00:02] WARNING: [pool www] child 11751 exited on signal 11 (SIGSEGV - core dumped) after 3600.462022 seconds from start 

我对这个错误很好奇。

到现在为止,我确信核心转储发生在fpm重新启动时。重新启动是由命令'kill -10 fpm-master-process-id'造成的。或者,当处理'pm.max_requests'请求时,fpm也会重新启动。

但是,核心转储并未在每次重新启动时发生,核心转储的可能性非常小。我找不到角色。

幸运的是,我已经安装了7.0.5版本来替换我们的生产环境中的7.0.2版本,并且它已经运行了三天而没有核心转储。

从7.0.2到7.0.5的更改日志中找不到任何修改。这确实是一个非常奇怪的错误,我想知道原因。谁能告诉我关于这个bug的一些信息?

+0

这是一个bug,将在7.0.6中修复 –

+0

是的,我发现这个bug https://bugs.php.net/bug.php?id=71662&edit=3 它说这个错误在7.0.4中修复,但我们在changlog中找不到 –

+0

是什么原因导致了这个错误?我无法在7.0.6分支中找到此错误的修改。 –

回答

0

更新至7.0.5后,2周内未发生核心转储。所以,这个bug已经在7.0.5中修复了!

我还不知道这个bug是什么情况。

我是一只好奇的猫。 @ _ @

相关问题