Problème Moodle 3.9.1+ et sauvegarde planifiée

Problème Moodle 3.9.1+ et sauvegarde planifiée

par Nicolas P.,
Nombre de réponses : 14

Bonjour à toutes et à tous,

Je viens de passer à Moodle 3.9.1+ et le premier rapport de sauvegarde planifiée n'est pas bon alors que je n'ai jamais eu de soucis par le passé avec toutes les versions précédentes de Moodle.

Résumé
==================================================
Cours: 80
OK: 0
Sauté: 13
Erreur: 0
Pas terminé: 1
Tâche ad hoc de sauvegarde de cours en attente: 66
Avertissement: 0
Sauvegarde automatique en attente: 0

Ce qui est étonnant c'est que pourtant il semble que les sauvegarde ce soit bien exécutées mais il semble avoir envoyé ce rapport avant même d'avoir fait les sauvegardes. Je ne comprends pas. 

En 3.8, la tache de sauvegarde démarrait à 3h15 et je recevait le mail de confirmation de sauvegarde vers 5h15. Ici j'ai reçu le mail à 3h50.

J'aurais bien voulu forcer une sauvegarde afin de voir ce qu'il se passe mais il m'en empêche en m'indiquant qu'elle se fera la nuit prochaine à 3h15 qui est l'heure habituelle du début de sauvegarde.

Mon cron s'execute toutes les 5 minutes. Pourriez-vous m'aider svp ?

Nicolas

Moyenne des évaluations  -
En réponse à Nicolas P.

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Nicolas P.,
Bonjour,
En poursuivant mes investigations, je viens d'aller voir le détail des tâches exécutées lors de la sauvegarde de cette nuit et celle de la nuit précédente (quand tout allait bien). Je ne garde que le premier cours pour éviter trop d'informations ;

Nuit précédente :
Execute scheduled task: Sauvegardes automatiques (core\task\automated_backup_task)
... started 03:50:02. Current memory use 18.3Mo.
Checking automated backup status...OK
Getting admin info
Checking courses
Skipping deleted courses...0 courses
Running required automated backups...
... started 03:50:02. Current memory use 22.5Mo.
Backing up ESPAGNOL UF2 19-20...
complete - next execution: Sun, 19 Jul 2020 03:15:00 +0200
Deleted 1 old backup file(s) from external directory
Cette nuit :
Execute scheduled task: Sauvegardes automatiques (core\task\automated_backup_task)
... started 03:50:02. Current memory use 15.8Mo.
Checking automated backup status...OK
Checking courses
Skipping deleted courses...0 courses
Running required automated backups...
... started 03:50:02. Current memory use 36.4Mo.
Getting admin info
Putting backup of ESPAGNOL UF2 19-20 in adhoc task queue ...
complete - next execution: Mon, 20 Jul 2020 03:15:00 +0200
Il y a donc un problème comme si il mettait les tâches en liste d'attente plutôt que de les exécuter... Pourriez-vous m'aider svp ?
Nicolas P.
En réponse à Nicolas P.

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Nicolas P.,
Voilà, j'ai encore continué mes recherches avec l'aide d'un membre du forum en anglais :
https://moodle.org/mod/forum/discuss.php?d=407376
Pour résumer, il s'avère :
- Qu'il est obligatoire que les tâches adhoc soit activée pour que la sauvegarde se fasse, sinon les tâches restent en file d'attente dans la table mdl_task_adhoc (j'aurais pensé qu'il aurait pu exécuter la sauvegarde d'une autre manière en cas de tâches adhoc désactivée)
- Dans le rapport de sauvegarde envoyé par mail dont vous trouverez un exemple en bas de ce message, le système considère une sauvegarde comme réussie si les tâches adhoc sont en liste d'attente. Ca ne me semble pas très pertinent car on n'a aucune assurance que ces tâches vont par la suite s'exécuter correctement.
De plus si une tâche est en cours au moment de l'envoi du rapport, dans la situation actuelle cela générera un rapport avec erreur alors que c'est logique que ça arrive vu qu'il envoie le rapport lorsque la sauvegarde est en cours.

Ma question est donc la suivante : Comment faire pour que cet email soit envoyé après la sauvegarde afin que les informations qu'ils contient soit fiables ?
Je pensais tester ceci : aller dans Administration/Serveur/Tâches programmées/Sauvegardes automatiques qui s'exécute toutes les 50 minutes et changer le paramètre en fixant une heure précise tous les jours, laissant le temps à la sauvegarde de se terminer mais je ne sais pas si ça fonctionnera.

Nicolas P.

Rapport envoyé par mail sans erreurs alors que j'avais désactivé les tâches adhoc :
Résumé
==================================================
Cours: 80
OK: 0
Sauté: 0
Erreur: 0
Pas terminé: 0
Tâche ad hoc de sauvegarde de cours en attente: 80
Avertissement: 0
Sauvegarde automatique en attente: 0

La sauvegarde s'est déroulée sans erreur
Moyenne des évaluations Utile (2)
En réponse à Nicolas P.

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Je constate la même chose sur ma plateforme :

Résumé
==================================================
Cours: 3874
OK: 4
Sauté: 2411
Erreur: 0
Pas terminé: 2
Tâche ad hoc de sauvegarde de cours en attente: 1449
Avertissement: 0
Sauvegarde automatique en attente: 8
Certains de vos cours n'ont pas été sauvegardés !

Au final en regardant dans mon dossier de sauvegarde, 1455 cours ont été sauvegardés
Je suppose (mais à vérifier encore) que cela correspond à :
1449 (ad-hoc en attente) + 2 (pas terminé au moment de l'envoi du rapport) + 4 (OK) = 1455

Reste pour moi à voir les sauvegardes en attente
Je vais creuser la question également, merci déjà pour les infos et la recherche

Bruno

En réponse à Bruno Malaval

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Nicolas P.,
Merci pour votre retour également Bruno, je ne comprends pas pourquoi ce rapport par email est envoyé en début de sauvegarde, ça lui retire son intérêt si il faut ensuite aller vérifier manuellement dans Administration/Rapports/Sauvegardes si ça s'est bien passé...
En réponse à Nicolas P.

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Le processus de sauvegarde a donc bien été reprogrammé à partir de la version 3.9
voir le tracker [MDL-65729]

L'origine de cette demande concerne les gros sites, pour lesquels le nombre de cours a sauvegarder et donc la durée était importante.
Séverin Terrier avait d'ailleurs proposé une modification du code pour alterner les sauvegardes (cours avec id pair => jours pairs, cours avec id impairs => jours impairs)
https://moodle.org/mod/forum/discuss.php?d=400182

  • Avant Moodle 3.9
    Les sauvegardes étaient réalisées de façon séquentielle par un script, très long si beaucoup de cours ou "gros cours"
    Dans ce cas, le mail pouvait être envoyé à la fin de l'exécution du script
  • Moodle 3.9
    Les sauvegardes sont mises en file d'attente, exécutées en parallèle par une tâche ad-hoc
    Ceci permet de lancer plusieurs sauvegardes automatiques en même temps
    Et si j'ai bien compris, dans ce nouveau fonctionnement, si une sauvegarde est en erreur, elle est remise en file d'attente
Vu le nouveau fonctionnement, il me semble difficile de contrôler la fin d'une sauvegarde automatique.
Par contre, il est peut-être possible de demander une amélioration, qui serait l'envoi d'un mail en cas d'erreur sur une sauvegarde.
Cela permettrait de contrôler que le cours a bien été remis en file d'attente et si la sauvegarde suivante s'est bien déroulée.

Concrètement, l'envoi du mail avant la fin de la sauvegarde automatique n'est pas un bug.
C'est un changement de paradigme (ça fait longtemps que je cherchais à la placer celle-là .. 😁)

Bruno
Moyenne des évaluations Utile (7)
En réponse à Bruno Malaval

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Nicolas P.,
Merci pour cette explication très complète Bruno. En soit c'est juste le rapport qui n'a plus de sens si il reste implémenté de cette façon (J'ajoute en bas de ce mail une copie de celui de ce matin avec l'objet erreur alors que finalement tout va bien).

Je pense que ce serait peut-être également l'occasion si cela est corrigé de régler également une bonne fois pour toute la présence des paramètres :
Administration/Serveur/Tâches programmées/Sauvegardes automatiques
et
Administration/Cours/Sauvegardes automatiques

En effet, ma sauvegarde est planifiée dans "Administration/Cours/Sauvegardes automatiques" tous les jours à 3H15 mais démarre réellement avec désormais l'envoi immédiat du rapport erroné à 3H50 car dans "Administration/Serveur/Tâches programmées/Sauvegardes automatiques" le paramètre définit une exécution toutes les 50 minutes...

Objet : Plateforme Moodle: [ERREUR] Statut des sauvegardes automatiques
Résumé
==================================================
Cours: 80
OK: 0
Sauté: 13
Erreur: 0
Pas terminé: 1
Tâche ad hoc de sauvegarde de cours en attente: 66
Avertissement: 0
Sauvegarde automatique en attente: 0

Certains de vos cours n'ont pas été sauvegardés !

Nicolas
En réponse à Nicolas P.

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
J'ai vu également les 2 possibilités de réglage, visiblement ce sont les tâches programmées qui ont la priorité ...
Je n'ai pas eu le temps de fouiller plus ces réglages.
De même pour le rapport, il n'est plus aussi clair qu'avant.

A voir donc s'il est nécessaire d'ouvrir un ticket pour une demande d'amélioration.

Mais plus tard, pour les semaines à venir, je bascule en mode "maintenance" (i.e. vacances)
donc ce sera plus pour la reprise en ce qui me concerne

Bonnes vacances à tous

Bruno
En réponse à Bruno Malaval

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Laurent Wafflard,
Avatar Moodleurs particulièrement utiles
Bonjour,

Le comportement est toujours le même avec Moodle 3.10, mais depuis cette discussion le ticket MDL-69615 a été ouvert.

Au niveau du code, si j'ai bien compris,  la tâche planifiée de sauvegarde automatique des cours appelle la fonction run_automated_backup()  de backup/util/helper/backup_cron_helper.class.ph qui se «contente» d'empiler dans la table des tâches adhoc les cours à sauvegarder. Si un cours a été ajouté, un mail est envoyé à l'issu de ces ajouts (soit en gros dans la même minute que le début de la tâche) => un autre effet pervers est que si aucun cours n'est ajouté dans la file, aucun mail n'est envoyé (celui avec autant de cours que de  «cours sautés» ne doit plus être possible à recevoir)

En l'état le mail reçu n'est pas vraiment utilisable, il pourrait peut être l'être plus si l'envoi du mail était lui aussi poussé dans la table des tâches adhoc ?

Laurent
En réponse à Laurent Wafflard

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Laurent Wafflard,
Avatar Moodleurs particulièrement utiles
Une solution de contournement en pièce jointe, un script CLI inspiré de la tâche actuelle uniquement pour interroger le statut des sauvegardes et envoyer un mail à l'administrateur.

Il peut être stocké à la racine php de Moodle et déclenché par cron au moment où les sauvegardes sont censées être terminées (le sujet du mail est préfixé par «Delayed»). Si l'heure programmée est cohérente, le nombre de «tâche ad hoc de sauvegarde de cours en attente» est à 0 et le nombre de «OK»/«Sauté»/«Erreur» est conforme à ce qui était proposé avant (le mail est envoyé même si tous les cours sont en «Sauté»).
Moyenne des évaluations Utile (2)
En réponse à Laurent Wafflard

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

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

Actuellement en 4.0, ce problème est toujours d'actualité. J'ai donc mis à jour les versions concernées dans MDL-69615.

Je n'ai pas (encore) testé ta solution. Par contre, il me semble utile de désactiver l'envoi du courriel (non pertinent) à l'administrateur.

Pour cela, j'ai initialement pensé, dans le fichier backup/util/helper/backup_cron_helper.class.php, désactiver dans la fonction run_automated_backup la ligne :
self::send_backup_status_to_admin($admin);
Mais je pense qu'il doit être plus pertinent (afin que les statuts soient réinitialisés) de plutôt agir sur la fonction send_backup_status_to_admin et de désactiver la ligne :
return message_send($eventdata);
Un avis là dessus ? Une meilleure suggestion ?

Séverin
En réponse à Séverin Terrier

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

par Laurent Wafflard,
Avatar Moodleurs particulièrement utiles
Bonjour Séverin,

Tout d'abord merci pour la mise à jour du ticket !

Personnellement je suis assez réfractaire à la modification du code «officiel» qui ne simplifie pas le travail de documentation, de  test ou de mise à jour et pour laquelle on prie toujours pour que la rustine n'aie pas plus d'effets négatif que le problème initial 🥶

De mon coté je ne trouve pas complètement inutile le mail original :
  • les jours «normaux» je reçois effectivement 2 mails
    • le premier (adhoc) ne sert qu'à connaître le nombre de sauvegardes prévues
    • le second (issu du script additionnel) permet de vérifier qu'à l'heure attendue tous les backups prévus se sont bien déroulés
  • les jours de fermeture, je ne reçois que le second
Laurent
En réponse à Laurent Wafflard

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

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

J'essaie effectivement de limiter au maximum les modifications de code. Mais lorsqu'il s'agit juste de commenter une ou deux lignes (d'une fonctionnalité précise, non reprise partout), je me dis que ça reste jouable.

Peut-être que le fait que j'administre 4/5 plateformes en exploitation change légèrement les choses de mon point de vue...

Séverin
En réponse à Séverin Terrier

Re: Problème Moodle 3.9.1+ et sauvegarde planifiée

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

J'ai modifié sur mes différentes plateformes en 4.0 ou 3.11 la fonction send_backup_status_to_admin, pour désactiver (en plaçant // en début) la dernière ligne :

return message_send($eventdata);
Cela rend le service attendu (plus de courriel), et ne semble pas générer de problème.

Séverin