Fatal error: Cannot redeclare events_get_cached()

Fatal error: Cannot redeclare events_get_cached()

par Benoît Seutin,
Nombre de réponses : 4

Bonjour,

Suite à une manipulation d'un collègue, notre plateforme moodle est devenue inopérante.
Au mieux nous avons une page blanche, et bien sûr nous n'avons plus accès à la page admin.

A priori ce n'est pas un problème de php car le "phpinfo();" fonctionne.

Nous avons tenté un retour en arrière et un upgrade mais rien n'y fait. Il semble que la structure de fichiers soit corrompue.

J'ai activé le mode debug et voici ce que cela affiche dans le navigateur :

Fatal error: Cannot redeclare events_get_cached() (previously declared in /home/clients/15722f6d46ade87019de327e37732493/web/cours/lib/deprecatedlib.php:3306) in /home/clients/15722f6d46ade87019de327e37732493/web/cours/lib/eventslib.php on line 55

Une idée ? Une suggestion ?

Grand merci !!

B. Seutin

Moyenne des évaluations  -
En réponse à Benoît Seutin

Re: Fatal error: Cannot redeclare events_get_cached()

par Olivier Valentin,
Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles

Bonjour,

est-ce qu'il s'agit d'un upgrade vers Moodle 3.6 ? Un incident similaire impliquant un fichier eventslib.php a été signalé il y a 2 jours sur les forums anglais : https://moodle.org/mod/forum/discuss.php?d=379623

Ce fichier n'existe pas dans la version 3.6 de Moodle, ce qui peut être à l'origine de ce problème.

Olivier

En réponse à Olivier Valentin

Re: Fatal error: Cannot redeclare events_get_cached()

par Benoît Seutin,

Merci de ta réponse Olivier.

C'est exactement cela. En attendant, on a fait un downgrade vers la 3.5.3+ et on fait face à un autre problème. Cela refonctionne pour les utilisateurs mais le compte admin est "bloqué" sur le contrôle serveur mysql:

Votre base de données utilise le format de fichier Antelope. Le support complet de l'encodage UTF-8 dans MySQL et MariaDB requiert le format Barracuda. Veuillez passer au format de fichier Barracuda. Consultez la documentation Support unicode complet pour MySQL pour des informations supplémentaires.

Je vais migrer la BD, de toutes façons le support UTF8 sera obligatoire plus tard.

A+

En réponse à Benoît Seutin

Re: Fatal error: Cannot redeclare events_get_cached()

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Il manque certaines informations importantes dans votre demande, notamment la version de Moodle.

<< Suite à une manipulation d'un collègue, notre plateforme moodle est devenue inopérante >>

Quelle était exactement cette manipulation ?

<< Nous avons tenté un retour en arrière et un upgrade >>
Retour en arrière .. c'est-à-dire ? Vous avez redéployé une sauvegarde ?  désinstaller un plugin ? ...
upgrade ? quelles sont les versions concernées ?

Dans l'erreur, je vois qu'il est question du fichier eventlibs.php.

Si vous êtes passé en version 3.6.1 (la dernière), dans cette version le fichier eventlibs.php a été supprimé.
Si vous êtes en 3.6.1 et que le fichier est toujours présent, cela signifie que l'upgrade n'a pas été fait correctement.

Vu le message, j'ai l'impression que votre installation mixe 2 versions.
Et donc que, certaines fonctions présentes dans l'ancien fichier eventlibs.php, vraisemblablement déplacées dans un autre fichier, sont dupliquées
d'où l'erreur : Cannot redeclare events_get_cached()

i.e : events_get_cached() appartenait à ce fichier dans les précédentes versions.

Si vous n'acez pas de sauvegarde (d'un état stable) de votre installation, j'essaierai ceci :

- faire au moins une sauvegarde de votre installation en l'état (dossier moodle + bdd + dossier data)
- Remplacer votre installation par la dernière version de Moodle. Ne pas installer "par dessus" mais bien faire un nouveau dossier
- Refaire votre fichier config.php + installation éventuelle de plugins
- Retenter l'accès au site ...

Les upgrades Moodle fonctionnent bien en général, mais il faut respecter les consignes.

Voir ici : https://docs.moodle.org/3x/fr/Mise_%C3%A0_jour

Ca va faire un peu de travail .. bon courage

Bruno

Moyenne des évaluations Utile (3)