@ b_b Merci pour ton retour mais ce sont des points que j’avais déjà vérifiés avec l’espace disque. Quant à la réparation des tables, elle fonctionnait bien mais le problème revenait plus tard.
En réalité, je me suis aperçu que j’avais plusieurs fichiers avec l’extension TMM. Tous ces fichiers avaient une taille à 0 ! Et c’est effectivement cité à la dernière ligne de https://bugs.mysql.com/bug.php?id=54828.
Pour terminer, voici mon raisonnement et ce que j’ai déroulé :
Je confirme, le crash est bien reproduit en forçant l’exécution de ce job. Il lance la fonction :
> SELECT descriptif, fonction FROM mydoc.spip_jobs where descriptif like '%optimiser_revisions%';
Il s’agit de la fonction plugins-dist/revisions/genie/optimiser_revisions.php.
Elle appelle entre autres optimiser_tables_revision() qui elle même appelle sql_optimize($table).
En fait sql_optimize($table), dans mon cas, lance sur la table passée en argument, la commande :
OPTIMIZE TABLE SCHEMA.SPIP_VERSIONS_FRAGMENTS
En lançant manuellement cette commande dans mysql, sans surprise, j’obtient bien un crash :
optimize table mydoc.spip_versions_fragments;
Et là, le problème est mis en évidence : mysql ne peut pas ou ne veut pas écrire spip_versions_fragments.TMM
Les droits d’accès au répertoire et aux fichiers sont corrects (rw pour le process mysql), par contre je remarque qu’il y a plusieurs fichiers TMM, dont un pour spip_versions et un autre pour spip_versions_fragments, et ils sont tous vides !
Donc :
– myisamcheck -r -q sur les tables crashées pour les remettre d’aplomb
– arrêt de securité de service mysql et archivage du répertoire complet pour sauvegarde
destruction des TMM vides
– (Je n’ai pas trouvé d’ifo précise sur leur existance mais il semble que les fichiers *.TMM semblent être des fichiers de travail,
temporaires donc)
– relance de mysql
– myisamchk -s *version*.MYI ne montre pas de corruption
– relance d’une optimisation sur les tables : tout se passe correctement : bingo !!
optimize table mydoc.spip_versions_fragments;
optimize table mydoc.spip_versions;
Dernière vérification via SPIP avec la relance du job optimiser_revisions :
Tââââ Dââââââ plus de crash :)