Описание и устранение сбоя интерпретатора PHP при перестройке расчётной таблицы веб-адресов

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8884
  • Регистрация: 20.02.2010

28.06.2014 06:39

Описание сбоя:
  • Сбойные версии Magento Community Edition: все версии Magento Community Edition младше версии 1.9.
  • Место сбоя: перестройка расчётной таблицы веб-адресов (либо администратором магазина вручную, либо программно)
  • Характеристики сбоя:
    Сбой встречается редко (в небольшом количестве интернет-магазинов).
    Сбой воспроизводится стабильно: если он случился один раз, то он гарантированно будет воспроизводиться снова и снова при каждой перестройке расчётной таблицы веб-адресов.
  • Описание сбоя:
    После запуска администратором перестройки расчётной таблицы веб-адресов браузер какое-то время ожидает ответа от веб-сервера (в браузере работает индикатор загрузки страницы), а затем сообщает администратору, что подключение к веб-серверу оборвано.
    Google Chrome:
    Прикрепленное изображение: ERR_CONNECTION_RESET-Chrome.png
    Сообщение:
    «This webpage is not available
    The connection to localhost.com was interrupted.
    Reload this webpage
    Press the reload button to resubmit the data needed to load the page.
    Check your Internet connection
    Check any cables and reboot any routers, modems, or other network devices you may be using.
    Allow Chrome to access the network in your firewall or antivirus settings.
    If it is already listed as a program allowed to access the network, try removing it from the list and adding it again.
    If you use a proxy server...
    Check your proxy settings or contact your network administrator to make sure the proxy server is working. If you don't believe you should be using a proxy server: Go to the Chrome menu > Settings > Show advanced settings... > Change proxy settings... > LAN Settings and deselect "Use a proxy server for your LAN".
    Error code: ERR_CONNECTION_RESET»

    Firefox:
    Прикрепленное изображение: ERR_CONNECTION_RESET-Firefox.png
    Сообщение:
    «The connection was reset
    The connection to the server was reset while the page was loading.
    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer's network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.»

    Internet Explorer:
    Прикрепленное изображение: ERR_CONNECTION_RESET-Internet-Explorer.png
    «This page can’t be displayed
    Make sure the web address is correct.
    Look for the page with your search engine.
    Refresh the page in a few minutes.»

  • Причина сбоя:
    • Причиной сбоя является библиотека PCRE.
    • Через библиотеку PRCE сбой попадает в расширение pcre интерпретатора PHP.
    • Далее через расширение pcre сбой попадает в функцию PHP preg_replace.
    • Далее через функцию preg_replace сбой попадает в используемую Magento библиотеку Zend Framework: дефекту подвержен метод Zend_Db_Statement::_stripQuoted.
    • Через Zend Framework сбой попадает в Magento всех версий.


  • Описание сбоя в других источниках:
    Данный сбой документирован в реестре дефектов Zend Framework:
    ZF-5063: Segmentaion fault on preg_replace in Zend_Db_Statement
    ZF-7585: query failed on very large sql statement
    Сбой также упоминался на англоязычноми форуме Magento Community Edition (хотя там выводы делаются неправильные, и правильное решение не даётся): Connection Reset/Emtpy Response error

Способ устранения сбоя:
Российская сборка Magento, начиная с версии 2.35.3, способна устранять данный сбой.
Для устранения сбоя достаточно просто обновить интернет-магазин.

Поделиться темой: