私はcodeigniter(php mvcフレーム)でphp-7.0.2を実行しています。私はコアダンプを引き起こしたいくつかのセグメンテーションフォルトを得ました。そして、私は、これらのセグメンテーションフォールトが子供のphp-fpmがシャットダウンして再起動するときにランダムに発生することを発見しました。どうしてか分かりません。コアダンプを表示するには、GDB "BT" を用いphp7.0.2シグナル11で終了したプログラム、セグメンテーションエラー
:
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-ids'コマンドによって行われました。また、pm.max_requestsリクエストを処理したときにfpmも再開しました。
ただし、再起動するたびにコアダンプは発生せず、コアダンプの確率は非常に低かった。私はその役割を見つけることができません。
幸運なことに、7.0.5バージョンを私たちの実稼働環境に置き換えてインストールしました。コアダンプなしで3日間稼働しました。
7.0.1から7.0.5の変更履歴ログに変更が見つかりません。これはちょうど非常に奇妙なバグであり、その理由を知りたい。誰がこのバグについて何か教えてくれますか?
、7.0.6 –
に固定されますはい、私はそれがこのように述べ このバグhttps://bugs.php.net/bug.php?id=71662&edit=3を発見しました7.0.4ではバグが修正されましたが、チェンジログには見つかりません –
このエラーの原因は何ですか? 7.0.6ブランチでこのバグの修正を見つけることができません。 –