6

PHP 7.0 でこの奇妙な問題が発生しました。PHP 7.0 で Magento2 のインデクサーを実行していますが、環境によって結果が異なります。CentOS を使用し、Remi の RepoまたはWebtatic Repoから PHP 7.0を取得すると、次のようにセグメンテーション エラーが発生します。

Program received signal SIGSEGV, Segmentation fault.
zend_mm_alloc_small (size=<optimized out>, bin_num=<optimized out>, heap=<optimized out>) at /usr/src/debug/php-7.0.1RC1/Zend/zend_alloc.c:1291
1291                    heap->free_slot[bin_num] = p->next_free_slot;
Missing separate debuginfos, use: debuginfo-install openssl-libs-1.0.1e-51.el7_2.1.x86_64
(gdb) backtrace
#0  zend_mm_alloc_small (size=<optimized out>, bin_num=<optimized out>, heap=<optimized out>) at /usr/src/debug/php-7.0.1RC1/Zend/zend_alloc.c:1291
#1  zend_mm_alloc_heap (size=<optimized out>, heap=<optimized out>) at /usr/src/debug/php-7.0.1RC1/Zend/zend_alloc.c:1358
#2  _emalloc (size=3, size@entry=32) at /usr/src/debug/php-7.0.1RC1/Zend/zend_alloc.c:2442
#3  0x0000555555666840 in zend_string_alloc (persistent=0, len=4) at /usr/src/debug/php-7.0.1RC1/Zend/zend_string.h:121
#4  php_pcre_replace_impl (pce=pce@entry=0x555555e76e40, subject_str=subject_str@entry=0x7fffd72fec68, subject=subject@entry=0x7fffd72fec80 "TypeId", subject_len=subject_len@entry=6, replace_val=replace_val@entry=0x7fffd2a393b0,
    is_callable_replace=is_callable_replace@entry=0, limit=<optimized out>, limit@entry=-1, replace_count=replace_count@entry=0x7fffffff7d5c) at /usr/src/debug/php-7.0.1RC1/ext/pcre/php_pcre.c:1217

ただし、コンパイル済みの PHP7 バージョンを使用すると、エラーは発生しません。また、ppa:ondrej/php-7.0 から Ubuntu 14.0 と PHP 7.0.0 で構成された vagrant ボックスを試しましたが、問題もありませんでした。

これらの特定のリポジトリを使用すると、このエラーが発生する理由はありますか?

7.0.1 で更新さ れたスタック トレースは異なります。

`Program received signal SIGSEGV, Segmentation fault.
0x00007fffded34620 in ?? ()
#0  0x00007fffded34620 in ?? ()
#1  0x00005555557db82b in execute_ex (ex=<optimized out>) at /usr/src/debug/php-7.0.1/Zend/zend_vm_execute.h:414
#2  0x000055555578ddd9 in dtrace_execute_ex (execute_data=<optimized out>) at /usr/src/debug/php-7.0.1/Zend/zend_dtrace.c:83
4

1 に答える 1