Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
Количество ответов: 15

Не устанавливаются и не обновляются плагины. При попытке обновить через админку апач просто подвисает на неопределенное время. Из подозрительных логов нашел только это в мускуле:

Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

Не могу понять в чем причина. Moodle 3.5.10

В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Anatoliy Skityaev -
Давно эта проблема возникла? Возможной причиной может быть ограничение доступа на установку плагинов. В данном случае у вас сбой при попытке соединения с БД MySQL. Еще может быть разрушение БД. Редко сейчас такое бывает, но это ведь набор нолей и единиц.
И в-третьих - обычная несовместимость версий устанавливаемых плагинов с версией Moodle. Это тоже надо иметь в виду при установке в Moodle плагинов сверх стандартного набора.
В ответ на Anatoliy Skityaev

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
Несовместимость отпадает, т.к. пробовал на разных плагинах, требующих обновления и еще не установленных. Версии совместимы.
Крайний плагин устанавливался месяца 3 назад. Проблем не возникло.
Права на папку moodle:
drwxr-xr-x 51 www-data www-data 4096 фев 22 08:08 moodle
Права корректные? Или не хватает на запись? Права устанавливаются на всю папку целиком? Типа такого:
chmod -R +a "www-data allow read,delete,write,append,file_inherit,directory_inherit" /path/to/moodle
Как проверить целостность БД?
В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
В настройках mysql max_allowed_packet должен быть не менее 4 Мб

В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Anatoliy Skityaev -
У вас выставлены права 755. Для изменений плагинов права должны быть 757 и на подкаталог moodle для плагинов из папки moodle выполнить "chmod -R 0757 mod/" . После изменений права возвращают: "chmod -R 0755 mod/".  При инсталляции Lms Moodle выставляют даже 777.
 В config.php (каталог /moodle) должна быть строка: "$CFG->directorypermissions = 0770;" Временно можно поставить 0777. Сама БД должна храниться в каталоге moodledata.

Если изменение прав не поможет, то проверьте статус работы сервера MySQL. Если активен, то клиентом с локального компьютера или ноутбука подключитесь к БД.  Там сразу все будет ясно. 
В ответ на Anatoliy Skityaev

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
Спасибо за советы. Чуть позже, как только занятия закончатся использую. Остался вопрос по правам в config.php. 777 в нем ставится на время установки плагинов в дополнение к правам, заданным на папки, либо это альтернативный вариант? Сейчас там установлено 777.
cat /var/www/html/moodle/config.php | grep directorypermission
$CFG->directorypermissions = 0777;
В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Vadim Tabunshchik -
Изображение пользователя Developers

Откройте config-dist.php и прочитайте пояснения к параметрам, там есть и про $CFG->directorypermissions. Он действует только для Moodle data directory, т. е. для moodledata и каталогов в ней.

А для установки плагинов нужно настраивать права для каталога с файлами сайта (moodle).

В ответ на Anatoliy Skityaev

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Vadim Tabunshchik -
Изображение пользователя Developers
1. Прав 755 достаточно для установки плагинов через веб, так как у владельца (веб-сервер) есть права на запись.
2. Параметр $CFG->directorypermissions действует для moodledata, а не для каталога moodle.
3. БД хранится в каталоге, определенном конфигом сервера баз данных, а не в moodledata.
В ответ на Vadim Tabunshchik

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
Смена прав на 0757 на moodle и mod результатов не дала (
2020-07-27T15:46:53.388854Z 310149 [Note] Aborted connection 310149 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-27T15:46:53.392789Z 310153 [Note] Aborted connection 310153 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-27T15:46:53.396785Z 310125 [Note] Aborted connection 310125 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-27T15:46:53.410605Z 310205 [Note] Aborted connection 310205 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-27T15:46:53.411581Z 310219 [Note] Aborted connection 310219 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Возможность веб-серверу писать в файлы php, которые доступны извне - это лютая дыра в безопасности. Делать такое можно только на localhost-е. Не зря moodledata рекомендуют держать отдельно moodle. IMHO Если есть shell на хосте с moodle, то обновление через web-интерфейс нафиг не нужно, а если обновление через git, то вообще вредно.

"Got an error reading communication packets" (кроме max_allowed_packet) это еще и превышение max_execution_time в php,
превышение connect_timeout (возможно еще и net_read_timeout) в mysql.
Обновление модуля может быть длительным, т.к. сначала нужно выкачать его и распаковать.

Права 0757 в данном случае странное решение. Если вы не знаете кто туда пишет, то тогда chmod -R 0777 moodle
А дальше логи на максимум и смотреть где появляется ошибка.
Посмотреть от какого uid работает php можно по файлам создаваемым в moodledata.

В комбинации nginx+php-fpm uid web-сервера и uid php-fpm могут быть разные. У вас апач+mod_php или nginx+php-fpm?
В ответ на Виталий Лавров

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
Апач. Что установку, что обновления ждал около часа. Безрезультатно.
В ответ на Сергей Никитин

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Vadim Dvorovenko -
Изображение пользователя Developers Изображение пользователя Майнтейнер перевода

осваивайтесь с установкой плагинов и обновлением через командную строку. Там, ксатаи, принято режим техобслуживания включать перед обновлением и установкой плагинов. Через веб про это многие забывают.

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

В ответ на Vadim Dvorovenko

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
В чем заключается установка через командную строку? Как я понимаю согласно https://docs.moodle.org/39/en/Installing_plugins#Installing_manually_at_the_server вручную выполняется только копирование и распаковка. С этим проблем нет, все файлы на своих местах. А установка все равно делается черед вебадминку? Или я ошибаюсь?
Про сервисный режим не забываю.
В ответ на Vadim Dvorovenko

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Anatoliy Skityaev -
Я извиняюсь не за желание помочь, а за не совершенство своих знаний.
Думаю, что таких проблем можно избегать, если иметь git на сам moodle и резервные копии БД.
По резервным копиям сделал сегодня маленькую наработочку. Суть в следующем: создается демон, он не зависит от перезапусков сервера - запускается вместе с ним, как один из пользовательских сервисов с правами root(можно и другого пользователя прописать). Цель демона мною была создана пока только для копирования локального (удаленное тоже возможно). Для этого был написан мини-скрипт для бота телеграм. Тест был проведен - при появлении на этом боте с другого аккаунта со смартфона копирование производится без сбоев на том компьютере, на котором запущен данный демон.
Технология создания демона для бота телеграм описана на хабре два с половиной года назад.
Применений ему можно придумать огромное количество - насколько хватит фантазии. Меня интересовал бэкап и эта публикация помогла решить этот вопрос. Пока в тестовом режиме.
В ответ на Виталий Лавров

Re: Не устанавливаются и не обновляются плагины. Aborted connection ХХХ to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)

от Сергей Никитин -
"Got an error reading communication packets" (кроме max_allowed_packet) это еще и превышение max_execution_time в php,
превышение connect_timeout (возможно еще и net_read_timeout) в mysql.

увеличил max_execution_time с 30 до 300.
cat /var/log/mysql/error.log

2020-07-28T17:37:27.856226Z 3625 [Note] Aborted connection 3625 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-28T17:37:27.872765Z 3604 [Note] Aborted connection 3604 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-28T17:37:28.095500Z 3481 [Note] Aborted connection 3481 to db: 'moodle' user: 'moodledude' host: 'localhost' (Got an error reading communication packets)
2020-07-28T17:38:59.690634Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 5667ms. The settings might not be optimal. (flushed=5 and evicted=9, during the time.)
2020-07-28T17:39:08.137509Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 6447ms. The settings might not be optimal. (flushed=6 and evicted=4, during the time.)
2020-07-28T17:39:55.737858Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 4105ms. The settings might not be optimal. (flushed=1 and evicted=2, during the time.)

Но плагин установился!!! Перед этим увеличил объем оперативки в виртуалке вдвое (с 2 до 4 гигов), ибо последние два дня при подключении админа к админке во время интенсивных занятий просто вешало мускуль!
Сразу после добавления ОЗУ начал наблюдать нагрузку на систему при попытке установки плагина. Потребление памяти не превышало половины, хотя явно росло первые минут пять. После изменения параметра и перезагрузки апача процедуру повторил.  Все как всегда, но на этот раз пока разбирался плагин установился. Так и не понял в чем была причина.

Всем спасибо за советы и еще один вопрос, как правильно вернуть права на каталоги с т.ч. безопасности.