Assistance technique

Moodle 3.3.1 et erreur MySQL dans le cron

 
Avatar Kenny Calvat
Moodle 3.3.1 et erreur MySQL dans le cron
 

Bonjour,

J'administre une architecture de serveurs contenant 7 moodles (5 ayant suivis une montée de version et 2 nouvelles installations) en v3.3.1.

Le serveur MySQL est déporté sur un autre serveur que apache et php-fpm. Tous les moodles fonctionnent très bien cependant je rencontre une erreur assez étrange avec les cron de toutes les instances.

J'ai essayé en cli directement : /usr/bin/php5 cron.php ou en activant le lancement du cron par le web, j'ai la même erreur.

Le cron commence bien sans erreur et au bout d'une ou 2 secondes j'obtiens ce genre d'erreurs :

++ Error gc-ing sessions: Erreur de lecture de la base de données +
!!! Erreur de lecture de la base de données !!!

Debug info: MySQL server has gone away

Ce qui n'a pas vraiment de sens parce que le serveur reste bien joignable, tout est fonctionnel. Avant de me plonger dans le code source, avez-vous déjà eu ce genre d'erreurs ? Pensez-vous que ce soit une limite de mémoire dépassée ou un module php manquant par exemple ?

Je suis en php5-fpm 5.6.30 et MySQL 5.5.57.

Tous vos conseils me seront utiles.

Merci par avance,

Très bonne fin de journée.

 
Moyenne des évaluations  -
Avatar Bruno Bouret
Re: Moodle 3.3.1 et erreur MySQL dans le cron
 

Bonjour,

peux-tu vérifier la valeur de wait_timeout dans /etc/mysql/my.cnf

Sur mon serveur la valeur était à 15 et j'avais sans cesse cette erreur. J'ai dû augmenter jusqu'à 200 pour pour m'en sortir. Tu peux regarder ce fil ( https://moodle.org/mod/forum/discuss.php?d=351726#p1431690 ). D'après Nicolas Martignoni on peut augmenter largement la valeur.

Pour info ce timeout correspond à la durée au bout de laquelle la connexion mySQL tombe en cas d'absence de requête. Ce n'ai donc pas une surcharge de mySQL qui est en cause, mais le contraire : un traitement qui prend trop de temps à faire autre chose entre deux requêtes.

Bien à toi

 
Moyenne des évaluations Utile (1)
Avatar Patrick Lemaire
Re: Moodle 3.3.1 et erreur MySQL dans le cron
Moodleurs particulièrement utiles

Bonjour,

Dans la même veine que la réponse de Bruno, et donc en complément, j'ai déjà rencontré ce message d'erreur pour une instance Moodle et c'était la valeur de max_allowed_packet qui était en cause (cf cette recherche sur ce thème).

Ce qui me fait penser à ça c'est que ton erreur arrive assez rapidement... Dans mon cas, il s'agissait d'une simple et unique ligne de données qui dépassait la valeur max autorisée.

Tiens nous au courant !

A bientôt,
Patrick

 
Moyenne des évaluations Utile (1)
Avatar Kenny Calvat
Re: Moodle 3.3.1 et erreur MySQL dans le cron
 

Bonjour à vous 2,

Merci beaucoup pour vos réponses, je viens de réévaluer les valeurs que vous me conseillez.

Dans mes logs, j'ai également vu des soucis de locks. J'ai jeté un coup d'oeil dans le config-dist.php et j'ai configuré en supplément de le config.php de tous les moodles :

Pour le NFS :

$CFG->preventfilelocking = false;

Pour gérer les locks en base de données et entre autre pour les crons :

$CFG->lock_factory = "\\core\\lock\\db_record_lock_factory";


Pour le moment cela semble convenir mais je reste septique. Ces moodles se trouvaient sur une précédente architecture de serveurs sans nécessité l'ajout de ces valeurs. Pensez vous que la montée de version en moodle 3.3.1 peut en être l'origine ?


Très bonne journée.


 
Moyenne des évaluations Utile (1)
Avatar Nicolas Martignoni
Re: Moodle 3.3.1 et erreur MySQL dans le cron
DéveloppeursMoodleurs particulièrement utilesTraducteurs

> Pensez vous que la montée de version en moodle 3.3.1 peut en être l'origine ?

Très probablement non.

En revanche, le changement d'architecture en est sans doute la cause, car les réglages qui vous ont été proposés et ceux que vous avez modifiés dans config.php sont justement dépendant de l'infrastructure sur laquelle votre Moodle est installé.

 
Moyenne des évaluations  -