[2.7] Fichiers et référence en base non supprimés suite à réinitialisation

[2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Pascal Maury,
Nombre de réponses : 10
Avatar Développeurs de plugins

Bonjour,

Nous avons trouvé des fichiers dans moodledata qui ont bien une référence dans la table files. Mais après être remonté jusqu'au module d'où ils proviennent (un devoir), on s'aperçoit que le nombre de dépôt pour ce devoir est ... à 0 ! Il s'agit en fait d'un cours de l'année dernière qui a été réinitialisé. Il n'y a plus d'entrées dans les tables assignsubmission_files et  assign_submission mais les entrées dans la table files sont toujours là !

Je suppose que Moodle se base sur la présence d'une entrée dans la table "files" pour déterminer s'il faut supprimer un fichier dans moodledata, donc il est normal que les fichiers n'aient pas été supprimés.
Dans notre cas, je suppose que c'est au niveau de la réinitialisation que tout ne s'est pas déroulé correctement, que tout n'a pas été effacé notamment dans la table files ... mais ce n'est qu'une supposition.

Avez-vous une idée de comment savoir s'il s'agit d'un problème ? J'ai pensé que le fichier pouvait être "référencé" ailleurs ? (comment fonctionne la table files_reference, j'ai pas bien saisi)

Qui a déjà rencontré des pb avec les fichiers dans ce genre ?

Je pensais commencer par chercher les fichiers rattachés aux devoirs dont le nombre de participation est à 0 pour voir l'étendu du problème. J'essayerais ensuite de recréer les entrées dans assignsubmission et assignsubmission_files pour retenter une nouvelle réinitialisation du devoir.

Moyenne des évaluations  -
En réponse à Pascal Maury

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Pascal,

Juste au cas ou, mais je doute que cela soit le cas : la ré-initialisation ne vient pas juste d'être faite ? Parce que normalement, un fichier inutilisé dans Moodle est automatiquement mis dans une "poubelle", et supprimé définitivement un peu plus tard (24h si mes souvenirs sont bons)...

Sinon, désolé mais je n'ai jamais pris le temps de fouiller à ce point là dans les entrailles des fichiers (liés aux devoirs ou non).

Séverin

En réponse à Pascal Maury

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Salut Pascal,

On dirait que c'est la période de grand ménage pour les moodleurs ? (cf ce fil « Une base de données interne propre ? »). Entre les tables questions et files, j'ai l'impression que nos plateformes vont avoir tendance à enfler avec des données superflues, voire erronées.

As-tu testé de faire tourner le moodle/admin/tool/health ? Peut-être y-a-t-il un test d'intégrité sur les fichiers ?

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Salut Patrick,

Effectivement, il est (parfois) important de "mettre les mains dans le cambouis" (on a déjà la chance de ne pas se salir clin d’œil ) et aller regarder de près comment tout cela fonctionne, afin de faire du propre.

Par contre, désolé de briser tes espoirs : l'outil "health" a été développé par Tim Hunt, et ne comprend (actuellement en tout cas) que des vérifications liées aux (banques de) questions, ainsi qu'à l'environnement général de Moodle (plus ou moins ce qu'on retrouve aussi sur "Notifications" ou "Environnement")...

Séverin

Moyenne des évaluations Utile (1)
En réponse à Séverin Terrier

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Pascal Maury,
Avatar Développeurs de plugins

Bonjour à tous les deux !

Merci Patrick pour ce rappel car justement, j'étais sûr que tous les outils étaient maintenant dans le menu d'administration. Ne trouvant plus health, je me disais qu'il avait disparu de Moodle 2 !

Mais en effet, comme l'a dit Severin, il ne me parle que des questions, rien sur les fichiers.

Après avoir étudié un peu la chose (avec notamment un script qui cherche en base s'il y a des entrées dans la table files qui font référence à un context de devoir pour lequel il n'y a pas de dépots (table assignsubmission_files), je trouve plein de disparités.
Etant donné que Moodle conserve les dépots des devoirs même si on retire les utilisateurs des cours, c'est pas simple de s'y retrouver. Alors j'ai essayé d'autres choses :
1/ remettre l'utilisateur qui avait déposé le devoir dans le cours pour voir si le dépot réapparait : non
2/ re-réinitiaisé les devoirs du cours : bingo, toutes les références des fichiers du devoirs ont été supprimés.

Je suppose donc que la réinitialisation ne s'est pas bien faite cet été. Je ne pense pas que cela soit du à notre script de réinitialisation en masse car il ne fait qu'appeler le code de la réinitialisation standard. Je pense donc à un bug avec la 2.7.x (je sais plus à quelle version j'étais). Je me suis donc noté de bien controler la prochaine réinitialisation notamment au niveau de la table files (après la réinit de la PF, il ne devrait quasi plus avoir de références de fichiers avec comme component assignsubmission_files). Vu que je réinit tous les cours, cela devrait nettoyer correctement toutes la PF. De tte facon je ne peux pas le faire à présent et, en soit, cela ne gene pas qu'il reste des références et des fichiers en trop si ce n'est que ca prends de la place (moodledata = 137 Go).

Bref, we will see !

En réponse à Pascal Maury

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Pascal : "health" n'a jamais été intégré dans le menu d'Administration !

Outre un bogue, à mon sens, la cause principale de données mal nettoyées dans la base interne de Moodle est liée à des réinitialisations (ou suppressions) de cours qui n'ont pas pu être effectuées jusqu'au bout incertain

Et ceci, j'imagine à cause de temps de traitement trop long...

En réponse à Séverin Terrier

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Zut, je suis déçu des limitations mais ravi d'en apprendre un peu plus sur "health". Il faudrait développer ce genre de scripts qui soignent nos plateformes. C'est bien dommage de le circonscrire aux questions même si c'est visiblement une source de ravage.

Du coup, Pascal, la solution qui fonctionne, c'est de ré-inscrire l'étudiant + réinitialisation du cours ? Je suppose que de relancer la réinit sans inscrire l'étudiant ne fonctionne pas ?

En réponse à Patrick Lemaire

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation - Outil health

par Séverin Terrier,
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

A propos de "health", voir MDL-35212.

Donc, effectivement, si quelqu'un trouve/prend le temps de développer des outils de vérification supplémentaires, cela pourrait être plus "mis en avant"... mais il n'est manifestement pas évident de trouver des gens qui s'investissent là dedans...

En réponse à Séverin Terrier

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation - Outil health

par Pascal Maury,
Avatar Développeurs de plugins
Du coup, Pascal, la solution qui fonctionne, c'est de ré-inscrire l'étudiant + réinitialisation du cours ? Je suppose que de relancer la réinit sans inscrire l'étudiant ne fonctionne pas ?

Si, si il suffit bien de relancer simplement la réinitialisation ! Inutile de réinscrire les étudiants. Je l'ai fait pour un étudiant pour voir si le dépôt du devoir réapparaissait sur la page de devoir mais en fait non. Puis j'ai relancé la réinitialisation du cours en ne choisissant que les devoirs et là j'ai pu constater que Moodle avait supprimé TOUTES les références de fichiers qui étaient rattachés au contexte de ce devoir (il y en avait une 10zaine).

Ce qui me rassure donc car à la prochaine fin d'année, lorsque je vais lancer la réinitialisation en masse de tous les cours, tout devrait se nettoyer proprement.

En réponse à Pascal Maury

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation - Outil health

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Et selon toi, pourquoi la première passe n'a pas aboutit au résultat ? Serait-ce comme le suggère Séverin : un délai d'exécution trop long ? Dans ce cas, peut-être que de lancer la ré-init 2 fois de suite assurerait moins de perte ?

En réponse à Patrick Lemaire

Re: [2.7] Fichiers et référence en base non supprimés suite à réinitialisation - Outil health

par Pascal Maury,
Avatar Développeurs de plugins

Voilà la réponse : MDL-46219 !

Si vous avez fait la réinit à cette période vous avez sûrement le même souci !

Ca marche à présent car il a été corrigé en 2.7.3 ! (je suis en 2.7.4 à présent).


Moyenne des évaluations Utile (2)