Error checking backup file. moodle.xml not found at root level of zip file.

Error checking backup file. moodle.xml not found at root level of zip file.

par Fred Quay,
Nombre de réponses : 7
Bonjour,

Depuis 2 mois, impossible de sauvegarder et restaurer des cours par la procédure manuelle : sur l'une seulement des trois instances de Moodle que j'ai testées, de la version 1.9.5+ à la version 1.9.7+, avec plusieurs cours, de toutes origines, j'obtiens ce message à la restauration.
Je viens de nettoyer la base SQL avec les outils de Phpmyadmin.
J'ai déclaré plusieurs fois les fichiers et répertoires de l'arborescence Moodledata à 755.

Autre phénomène observé, dont je perçois le rapport sans pouvoir l'établir : à la mise à jour de Moodle, je perds la langue fr-utf8. Et je n'arrive pas à installer le package par les moyens de Moodle et je constate que le répertoire fr_utf8 a disparu, ainsi que fr_utf8_local ; il me faut copier les packages de langue voisins par une interface ftp.

Je suis à court d'idée. J'ai activé le déboggage (Moodle 1.9.7+ d'hier):

à la sauvegarde :
Capability "moodle/backup:userinfo" was not found! This should be fixed in code.
  • line 383 of lib/accesslib.php: call to debugging()
  • line 20 of backup/backup_form.html: call to has_capability()
  • line 131 of backup/backup.php: call to include_once()

à la restauration :
Stack trace:
  • line 1664 of lib/deprecatedlib.php: call to debugging()
  • line 8055 of backup/restorelib.php: call to error()
  • line 42 of backup/restore_precheck.html: call to restore_precheck()
  • line 152 of backup/restore.php: call to include_once()
et le message d'erreur : Error checking backup file. moodle.xml not found at root level of zip file.

Moyenne des évaluations  -
En réponse à Fred Quay

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Valery Fremaux,

Hi Fred,

Les erreurs que tu décris me semblent sur une 1.9.7 liées au fix de sécurité concernant le stockage des données utilisateur dans la sauvegarde globale. objet de l'avertissement.

La deuxième erreur de debugging n'est pas préoccupante, sauf évidemment sa conclusion.

Peux tu ouvrir le zip d'archive ? Tu devrais constater l'absence de ce fichier moodle.xml qui contient toutes les données sauvegardées.

Il est possible que l'absencede la capacité au moment de la sauvegarde bloque la création du fichier de sauvegarde, par souci de sécurité.

Si tu as un peu de courage, il est facile d'essayer de corriger dans la base en créant la capacité adéquate dans la table mdl_capabilities (je la suppose de contextlevel CONTEXT_SYSTEM, soit 10).  Cela suffit pour la faire exister, mais évidemment pas pour l'assiger aux rôles, ce dont tu n'as en principe pas besoin en tant qu'admin.

En réponse à Valery Fremaux

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Fred Quay,
Bonjour Valéry,

"erreurs sur une 1.9.7 liées au fix de sécurité concernant le stockage des données utilisateur dans la sauvegarde globale" : oui, je te suis, j'ai cherché la capacité manquante sans la trouver. Mais pourquoi cette version devrait généréer des erreurs sur une fonction de sécurité ? Pourquoi serais-je dans l'obligation de mettre dangereusement les mains dans la BDD ? mort. Ce problème doit être traité, mais n'est pas à la racine du mien, qui est antérieur, et ressort plutôt de ce qui suit :

Zip d'archive incomplet, orphelin de moodle.xml à la racine de la sauvegarde. Tu as raison de me diriger vers cette hypothèse, mais tu penses bien, que nenni, il est présent, moodle.xml, sur les 6 ou 7 fichiers d'archives testés et générés sur d'autres instances, qui se restaurent impeccablement d'une instance à l'autre sauf sur celle-ci..

En ce moment, je suis en train de tester le backup automatique centralisé vers un autre répertoire que moodledata. La première sauvegarde de ce matin sur un répertoire à 755 a échoué, je l'ai passé à 777, je donnerai des nouvelles après une nouvelle tentative, mais je crois qu'il n'y a pas de problème de droit, ni d'espace de stockage, ni de safe_mode sur mon hébergement, l'ayant vérifié puisque je traite en même temps le problème de mes fichiers de langue qui ne s'installent pas.
En réponse à Fred Quay

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Dominique Bouillet,
Bonjour Fred,
J'ai rencontré moi aussi cette erreur lors de la migration à la rentrée.
Je faisais des restauration en série et à la nième restauration, j'avais ce message d'erreur. Je refaisais un peu plus tard la restauration qui avait échouée et tout se passait alors correctement. D'autre part, les mêmes archives pouvaient être restaurées sans souci sur une autre plateforme de test. J'en avais conclu à des problèmes de charge et/ou de ressources.
Le service informatique a modifié plusieurs paramètres pour augmenter les ressources (en particulier memory_limit de php).
Mais il me semble que cela n'a pas tout résolu et que pour certains espaces trop volumineux, j'ai du faire une sauvegarde sans les logs pour pouvoir faire la restauration.
Bonne fin de journée
Dominique


En réponse à Dominique Bouillet

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Fred Quay,
Merci Dominique,

pour les informations partagées. Je viens de tenter la sauvegarde d'un cours avec 1 forum et 1 wiki, tenu par deux jeunes élèves, depuis 2 mois, activité réduite. Sans logs. La sauvegarde s'exécute jusqu'à ce point : la copie du fichier zip dans le répertoire du cours :

  • Compactage (zip) de la sauvegarde
  • Copie du fichier compacté (zip)
An error occurred while copying the zip file to the course directory

En réponse à Fred Quay

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Fred Quay,
Bonjour,

toujours pas de solution... Lorsque j'active la sauvegarde automatique vers un répertoire extérieur à moodledata, comme sur mes autres instances, Moodle ne parvient pas à écrire les fichiers... Je soupçonne qu'un répertoire d'écriture temporaire est en jeu, ou une corruption dans la base de données qui est hors de ma portée.

Avez-vous une idée sur ces notions ? Si je me résolvais à réinstaller complètement cette instance, j'aurais perdu quelques 8 semaines d'activité de mes élèves.

De mon côté, je vais installer une deuxième instance de Moodle sur cet hébergement, constater si le phénomène se reproduit à partir du neuf, et appliquer en second temps la base de données copiée de l'instance actuelle.
En réponse à Fred Quay

Re: Error checking backup file. moodle.xml not found at root level of zip file.

par Patrick Pollet,
Bonjour Fred,

Si c'est un pb de droits dans un répertoire temporaire (en sauvegarde automatique, c'est à dire lancée dans le cron) tu peux essayer cela :

A la ligne 60 du fichier lib/pclzip.lib.php remplace

define( 'PCLZIP_TEMPORARY_DIR', '' );
par
define ('PCLZIP_TEMPORARY_DIR',$CFG->dataroot.'/temp/');

Ceci va forcer pclzip qui est la bibliothéque chargée de créer le zip final à utiliser le repertoire temporaire de Moodle plutôt que le répertoire courant, qui est probablement indeterminé ou non accessible lors d'une tache de fond...

Ca m'a toujours surpris que ce réglage n'existe pas dans la distribution standard, mais apparemment ca ne perturbe pas les sauvegardes ou autre compressions ( export au format OpenOffice...) en mode manuel, mais pourrait bien être la raison en mode "tache de fond" ou l'environnement utilisé par php est différent de celui utilisé par Moodle.


Bonne chance.
Moyenne des évaluations Utile (1)
En réponse à Patrick Pollet

Re: Error checking backup file. moodle.xml not found at root level of zip file. [Résolu]

par Fred Quay,
On avance !

Merci Patrick : ta réponse m'a permis d'identifier qu'il existe bien un répertoire temporaire, qui stocke notamment les fichiers de sauvegarde/restauration.
Or dans l'arborescence moodledata en cause, le répertoire temp est bien peuplé des fichiers correspondant, en temps et heure, à mes requêtes.
On y trouve bien les fichiers de paquetage de langue zippés (vous vous souvenez que je pensais ces deux problèmes liés?) et les fichiers de sauvegarde non zippés !

Conclusion : la compression/décompression ne fonctionne pas. J'ai cru que le protocole expérimental de segmentation des fichiers lors de la sauvegarde était en cause, mais non.

C'est la déclaration du chemin d'accès des logiciels zip et unzip qui était erronée ! Je l'ai supprimée et ça fonctionne...

Pffffffffffffff et Youpiiiiiiiiiii !