2015-12-17 2 views
6

Мы столкнулись с этой странной проблемой с PHP 7.0. Мы запускаем указатели Magento2 на PHP 7.0 и имеем разные результаты в разных средах. Если мы используем CentOS, и получить PHP 7.0 или из Remi's Repo или Webtatic Repo, мы получаем Сегментация Fault следующим образом:Ошибка сегментации в PHP7

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, [email protected]=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 ([email protected]=0x555555e76e40, [email protected]=0x7fffd72fec68, [email protected]=0x7fffd72fec80 "TypeId", [email protected]=6, [email protected]=0x7fffd2a393b0, 
    [email protected]=0, limit=<optimized out>, [email protected]=-1, [email protected]=0x7fffffff7d5c) at /usr/src/debug/php-7.0.1RC1/ext/pcre/php_pcre.c:1217 

Но, если мы используем скомпилированную версию PHP7, нет никакой ошибки. Мы также пробовали использовать брандмауэр, настроенный с Ubuntu 14.0 и PHP 7.0.0 от ppa: ondrej/php-7.0, и никаких проблем там не было.

Любые идеи, почему эта ошибка возникает при использовании этих конкретных репозиториев?

Обновлено с 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 
+2

Первая попытка 7.0.1, выпущенная вчера. –

+0

Мы пробовали с PHP 7.0.1RC1 с одинаковыми результатами. Попробуй с 7.0.1. – Maddy

+0

Мы только что пробовали с php-7.0.1-1.el7.remi.x86_64 и все еще segfault :( – Maddy

ответ

1

Пожалуйста, смотрите эту ссылку с Magento форума:

https://community.magento.com/t5/Installing-Magento-2/PHP-7-Segmentation-Fault-CentOS-7-x/td-p/25031

И это из официального репо: https://github.com/magento/magento2/issues/2750

В течение некоторые локальные тесты я реплицировал эту проблему (Ubuntu 14.04 с ppa: ondrej/php-7.0), а еще хуже то, что «ошибка сегментации» будет держать индекс как «обработку» (смысл, поскольку он не был успешно завершен) , нам пришлось изменить таблицу данных (indexer_state) и вручную зафиксировать эти значения перед повторным запуском повторного индекса.

Похоже, что Magento 2 не поддерживает «полностью» PHP7?

+0

Проблемы с PHP7 были исправлены в [теге 2.0.1] (https://github.com/magento/magento2/tree/2.0 .1) Пожалуйста, посмотрите и сообщите нам, исправлена ​​ли ваша проблема. – Maddy

Смежные вопросы