Tâche #36185
Scénario #36187: EOLE 2.10 : Mise à niveau de eole-mysql
EOLE 2.10 : message inquiétant après l'installation de MySQL sur Eolebase
100%
Description
Visible dans le test https://dev-eole.ac-dijon.fr/jenkins/job/2.10.0/job/test-instance-etb1fogserver-2.10.0-amd64 :
run-parts: executing /usr/share/eole/preservice/01-mysql_binlog_cleanup instance
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Demandes liées
Révisions associées
Exécuter la requête PURGE en preservice n’est ni fiable ni nécessaire.
Ref #35185
Historique
#1 Mis à jour par Joël Cuissinat il y a plus d'un an
- Lié à Tâche #34576: Permettre de configurer la durée de rétention des logs binaires ajouté
#2 Mis à jour par Joël Cuissinat il y a plus d'un an
Dans l'exemple, le paquet mysql-server vient juste d'être installé, le service es sans doute mal démarré/mal configuré !
Je vois plusieurs possibilités pour corriger :- déplacer le code plus loin mais si il a été mis en preservice dans #34576 : c'est qu'il y a une raison ?
- démarrer explicitement mysql à la ligne précédente (CreoleService mysql start) : un peu overkill mais fonctionne !
- rediriger le message d'erreur : j'aime pas trop mais dans ce cas précis, pourquoi pas ?
- ajouter une exception "logparser" : pas top car ça pourrait masquer des erreurs ailleurs
#3 Mis à jour par Joël Cuissinat il y a plus d'un an
- Tâche parente mis à #36187
#4 Mis à jour par Benjamin Bohard il y a plus d'un an
Peut-être une autre possibilité inspirée par la documentation de MySQL : laisser le service gérer au démarrage (supprimer ce preservice et éventuellement adapter le délai de rétention des journaux binaires).
Binary log files are automatically removed after the server's binary log expiration period. Removal of the files can take place at startup and when the binary log is flushed. The default binary log expiration period is 30 days. You can specify an alternative expiration period using the binlog_expire_logs_seconds system variable.
#5 Mis à jour par Benjamin Bohard il y a plus d'un an
Avec le recul, ce rôle de ce preservice est sans doute de nettoyer les journaux binaires dans le cas d’une désactivation après un temps de fonctionnement avec les journaux binaires.
Le cas qui serait traité serait celui où MySQL ne nettoie pas les fichiers créés avant le redémarrage avec l’option skip-log-bin.
Cas à tester :
- démarrage avec la journalisation binaire pour création de journaux
- bascule en mode skip-log-bin
On peut s’attendre à ce que MySQL ne traite plus automatiquement les journaux dans ce cas (absence de l’option binlog_expire_logs_seconds).
Est-ce que la suppression manuelle (requête PURGE BINARY LOGS BEFORE NOW;) fonctionne pour autant ?
Si elle ne fonctionne pas, il est semblerait nécessaire de l’exécuter avant le changement de configuration.
Si elle fonctionne, il est sans doute possible d’exécuter cette requête après le démarrage du service dans le postservice existant (ou de se contenter de la suppression directe comme c’est déjà le cas).
Dans ce dernier cas de figure, il faut vérifier que la suppression physique est suffisante pour permettre la bascule inverse (revenir à l’enregistrement de journaux binaires). Est-ce que la requête PURGE s’appuie uniquement sur le contenu du fichier index ?
Si oui, la suppression de ce dernier comme fait actuellement devrait être suffisante.
#6 Mis à jour par Benjamin Bohard il y a plus d'un an
Une fois le service démarré avec l’option skip-bin-log, la requête est sans effet (ne provoque pas d’erreur non plus) et il n’y a pas de suppression automatique au démarrage du service.
Si on ne laisse que l’opération de suppression directe (postservice) après avoir basculé en mode "skip-bin-log", la réactivation de la journalisation ne semble pas poser de problèmes (les journaux sont bien écrits par la suite et il n’y a pas de message d’erreur dans les logs).
Finalement, il ne semble pas indispensable de procéder au purge en preservice :
- le nettoyage en postservice semble suffisant ;
- le purge n’est pas forcément possible étant donné l’état potentiel du service.
#7 Mis à jour par Benjamin Bohard il y a plus d'un an
- Statut changé de Nouveau à En cours
- Assigné à mis à Benjamin Bohard
#8 Mis à jour par Benjamin Bohard il y a plus d'un an
- Statut changé de En cours à À valider
#9 Mis à jour par Emmanuel GARETTE il y a plus d'un an
- Statut changé de À valider à Résolu
- % réalisé changé de 0 à 100
Le test est maintenant au vert.
#10 Mis à jour par Joël Cuissinat il y a plus d'un an
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
Script preservice supprimé en 2.10.