Автор: LukeWCS
Описание расширения: Extension Manager Plus дополняет стандартное Управление расширениями возможностью одновременного отключения и повторного включения всех установленных расширений. Индивидуальный выбор можно сделать с помощью флажков. Кроме того, можно определить группы для упорядочивания или игнорировать расширения. Также на странице Управление расширениями отображается различная дополнительная информация.
Скачать: официальная страница на phpBB.com, авторская страница на GitHub
Язык: en, de, ru
________________
При наличии большого количества расширений (в моём случае их 140), при проверке всех версий, БД падает с ошибкой
MySQL server has gone away [2006]
Код: Выделить всё
SQL ERROR [ mysqli ]
MySQL server has gone away [2006]
SQL
SELECT * FROM phpbb_config_text WHERE config_name = 'extmgrplus_list_version_check'
BACKTRACE
FILE: (not given by php)
LINE: (not given by php)
CALL: msg_handler()
FILE: [ROOT]/phpbb/db/driver/driver.php
LINE: 1031
CALL: trigger_error()
FILE: [ROOT]/phpbb/db/driver/mysqli.php
LINE: 211
CALL: phpbb\db\driver\driver->sql_error()
FILE: [ROOT]/phpbb/db/driver/factory.php
LINE: 353
CALL: phpbb\db\driver\mysqli->sql_query()
FILE: [ROOT]/phpbb/config/db_text.php
LINE: 133
CALL: phpbb\db\driver\factory->sql_query()
FILE: [ROOT]/phpbb/config/db_text.php
LINE: 68
CALL: phpbb\config\db_text->get_array()
FILE: [ROOT]/ext/lukewcs/extmgrplus/core/ext_mgr_plus_common.php
LINE: 106
CALL: phpbb\config\db_text->get()
FILE: [ROOT]/ext/lukewcs/extmgrplus/core/ext_mgr_plus.php
LINE: 835
CALL: lukewcs\extmgrplus\core\ext_mgr_plus_common->config_text_set()
FILE: [ROOT]/ext/lukewcs/extmgrplus/core/ext_mgr_plus.php
LINE: 194
CALL: lukewcs\extmgrplus\core\ext_mgr_plus->versioncheck_save()
FILE: [ROOT]/ext/lukewcs/extmgrplus/event/listener.php
LINE: 49
CALL: lukewcs\extmgrplus\core\ext_mgr_plus->ext_manager_after()
FILE: (not given by php)
LINE: (not given by php)
CALL: lukewcs\extmgrplus\event\listener->ext_manager_after()
FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 214
CALL: call_user_func()
FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php
LINE: 44
CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()
FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 62
CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
FILE: [ROOT]/phpbb/event/dispatcher.php
LINE: 46
CALL: phpbb\event\dispatcher->dispatch()
FILE: [ROOT]/includes/acp/acp_extensions.php
LINE: 387
CALL: phpbb\event\dispatcher->trigger_event()
FILE: [ROOT]/includes/functions_module.php
LINE: 676
CALL: acp_extensions->main()
FILE: [ROOT]/adm/index.php
LINE: 81
CALL: p_master->load_active()
В то же время, если проверять версии стандартными средствами phpBB, то операция завершается успешно. Это занимает ~45 секунд.
Если проверять версии через это расширение, то уже на 40-й секунде база крешится.
Я связался с автором расширения, и вот что он написал:
Пока проблема не решена. Буду пробовать переносить расширения на тестовый форум и убирать по одному.LukeWCS писал(а):EMP выполняет проверку версии той же функцией, что и сам phpBB. Разница только в том, что после проверки версии EMP считывает данные версии из кэша и записывает их в базу данных. И похоже, что в вашем случае на этом этапе есть проблема.
Однако, я никогда не видел такого сообщения об ошибке при использовании EMP. Перед записью EMP сначала считывает полеextmgrplus_list_version_check
из БД, и на этом этапе сервер MySQL по какой-то причине говорит вам гудбай. Я использую функциюconfig_text->get
из phpBB, которая выполняет этот SQL-запрос, её можно увидеть в вашем сообщении об ошибке. Если этот простой запрос приводит к такому сообщению об ошибке, проблема не в EMP, а где-то еще. SQL-запрос представляет собой простой запрос на чтение, и объем передаваемых данных также очень мал, даже при наличии 140 расширений.
По совету Siava проверил настройку
max_allowed_packet
, она у меня равна 32М.Если у кого-то есть ещё идеи как можно диагностировать это ошибку, буду рад.
P.S. Вот тут лежит мой русский перевод, если кому нужно.
