erreur sqlite ?

Bonjour à tous,

J’ai un bug qui est apparu je ne sais quand (récemment, on vient de me le signaler) mais alors que je n’avais fait aucune modif sur mon site (spip3.1.8).
Sur une page publique où un formulaire () permet de rentrer des événements, la validation de l’événement se termine systématiquement par un message « echec ». Quand je suis connecté au site, j’ai le message suivant qui apparait alors : Je ne vois pas ce qui cloche dans le fichier en question (j’y connais rien du tout mais de toutes façons je ne l’ai pas touché depuis des années). D’autre part, dans la liste de tous les événements, qui tous sont automatiquement en « validé », il y en a un, entré dernièrement par un utilisateur, qui est « en attente de validation ». je ne peux pas changer son statut, ni en « validé » ni en « a la poubelle ». La base sqlite qui serait inaccessible ? Autre chose ? Pourquoi ? Qu’y faire ? Merci d’avance de vos réponses, Etienne

Bonjour,

je me réponds pour compléter mais rien d’est réglé.

J’ai essayé de réparer la base dans « maintenance ». Ca a l’air de fonctionner normalement, ça me dit que tout va bien. Alors je l’ai sauvegardée et transférée sur mon ordi avec filezilla. Ouverte avec sqlitestudio, j’ai viré les dernières lignes (celle qui était tout le temps en « en attente » et trois autres vides dont je ne sais pas ce qu’elles faisaient là) puis j’ai remis la base dans le dump avec Filezilla.
J’essaie ensuite de faire une restauration de la base mais ça bloque avec un message d’erreur « table spip_articles absente » (alors qu’elle apparait bien dans sqlitestudio). C’est la première table donc j’imagine que c’est une erreur globale.

Je tente alors une restauration d’une sauvegarde ancienne (6 mois, j’avais pas fait de sauvegarde depuis, gros c… que je suis.)
Je note au passage que ça m’indique que 42 tables vont être restaurées alors que avec la sauvegarde post-bug ça m’en donnait 25.
La restauration bloque en me disant que je suis connecté avec mon login mais que celui-ci n’existe pas ou plus dans la base de donnée et qu’il faut me reconnecter après avoir fermé mon navigateur.
Bon, je fais ça, je recommence, mais ça me dit pareil : table spip_articles absente et la restauration ne se fait pas.

BON ??
Et maintenant je fais quoi, je brûle tout ? Ou je me mets au zen sur l’heure ?

Je continue mes testes :

Donc je vais chercher directement la base dans /config/bases.

Elle est plus lourde que celles sauvegardées dans dump et sqlitestudio affiche 47 tables (contre 29 pour celles de dump post-bug).

J’essaie de virer les dernières lignes de la table spip_evenements, les 3 vides et celle qui reste en attente de validation.
Message d’erreur : [11:13:45] Erreur à la suppression d’une ligne de la table spip_evenements: database disk image is malformed
sqliteman dit à peu près la même chose.

??
Merci à vous si vous avez la patience de me lire.

Bon, je ne comprends rien, ça a l’air de fonctionner.

J’ai renommer la bse dans /config/bases en *-old et j’ai mis à la place, en lui donnant son nom, la vieille sauvegarde qu’il y avait dans dump.
Bon, ça a l’air de fonctionner en site public, mais j’ai des messages d’erreur dans le site privé.
Alors je laisse tomber, je la vire et je remets la normale, (que j’avais juste renommée en -old).

Je reviens dans mon site privé, je me dis « tiens, bête comme je suis j’ai pas pensé à mettre à jour les plugins » J’essaie ça via la couteau suisse. Impossible : « la révision distante n’a pas pu être trouvée » pour tous les plugins.

Alors je laisse tomber et par acquis de conscience je réessaie une dernière fois d’ajouter un événement dans le site public. Et ça fonctionne.
Et je peux changer le statut de l’événement qui était en attente et dont je ne pouvais pas changer le statut.

Autant dire que je n’y comprends rien, que je ne sais pas si demain ça fonctionnera encore, que je ne sais pas si il s’est passé quelque chose chez l’hébergeur ou quoi ou qu’est-ce.

Bref, désolé du bruit,
A bientôt pour de nouvelles mésaventures.

Etienne

Bon mais en fait non.

Après une nouveau vidage du cache, le site public a l’air de toujours bien fonctionner (et d’ailleurs la newsletter de jeudi dernier qui n’était pas partie est partie), mais j’ai un nouveau message d’erreur dans la partie privée, pas le même qu’avant :
Numéro


| Message | squelette | boucle | Ligne |

Bon, je crois que je vais partir en vacances…

Salut,

si ton hébergeur propose des sauvegardes de ton hébergement, récupère la version la plus récente de ton fichier SQLite non corrompu puis passe en mySQL pour éviter que ça se reproduire (cf ). Voir la discussion récente sur le même sujet : jean marie