[3.3] Extension Manager Plus / Управление расширениями (Плюс)

Поддержка расширений, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с расширениями для phpBB, кроме относящихся к форуму Для авторов.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.2.x | FAQ | Внимание! Прежде чем создать тему - прочти! | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
dimassamid
phpBB 2.0.1
Сообщения: 295
Стаж: 18 лет 5 месяцев
Благодарил (а): 86 раз
Поблагодарили: 123 раза

[3.3] Extension Manager Plus / Управление расширениями (Плюс)

Сообщение dimassamid »

Название расширения: Extension Manager Plus / Управление расширениями (Плюс)
Автор: 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. Вот тут лежит мой русский перевод, если кому нужно. :)
dimassamid
phpBB 2.0.1
Сообщения: 295
Стаж: 18 лет 5 месяцев
Благодарил (а): 86 раз
Поблагодарили: 123 раза

Re: [3.3] Extension Manager Plus / Управление расширениями (Плюс)

Сообщение dimassamid »

По словам разработчика, проблема всё-таки не в его расширении, а в самом phpBB. Движок не успевает проверить такое большое количество расширений из-за таймаута SQL. При стандартной проверке версий (из коробки) эти ошибки тоже возникают, но подавляются самим phpBB, поэтому мы их не видим и даже не подозреваем, что некоторые версии, оказывается, не были проверены.
У меня значение wait_timeout = 30, и на виртуальном хостинге, как правило, его увеличивать нельзя.

Более подробно обо всём этом можно прочитать здесь:
https://www.phpbb.com/customise/db/exte ... pic/247519

Сейчас разработчик работает над новой версий своего расширения, где проверка будет делиться на несколько этапов, как это происходит во время создания поисковых индексов. Предварительный скриншот здесь.

Если он это всё реализует, то Extension Manager Plus будет просто незаменимой вещью для тех, кто использует большое количество расширений.
Было бы особенно приятно видеть такой функционал из коробки.

Следим за обновлениями.
dimassamid
phpBB 2.0.1
Сообщения: 295
Стаж: 18 лет 5 месяцев
Благодарил (а): 86 раз
Поблагодарили: 123 раза

Re: [3.3] Extension Manager Plus / Управление расширениями (Плюс)

Сообщение dimassamid »

Ура! Проблема решена. Разработчик переделал расширение и теперь проверка выглядит вот так :)
Скриншот 
Ext Check.png
Процесс разбит на несколько циклов. Продолжительность цикла можно выставить в настройках:
Скриншот 
Ext Check Settings.png
Новая версия 2.1.0 здесь: https://github.com/LukeWCS/ext-mgr-plus/tree/2.1.0

Русский перевод тоже обновлю на днях.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Вернуться в «Поддержка расширений для phpBB»