MESSAGE D'ERREUR: INVALID RECORD

MESSAGE D'ERREUR: INVALID RECORD

par nicolas aniort,
Nombre de réponses : 7
Version Moodle: 3.6.1+

Depuis la rentrée , j'ai un message d'erreur récurrent :


ce message était pressent dés le tableau x de bord puis quasiment partout sur la plateforme....Partout??....
Non, seul les lieux ou un accès calendrier ou directement dans le calendrier sont sensible à ce phénomène.

Donc première choses pour mes chers utilisateurs, j'ai supprimé le bloc calendrier du tableau de bord qui les accueille.
Super!!! plus de message d'erreur sur le tableau de bord et autre lieu où j'ai supprimé le bloc.

Malheureusement, ....si l'on rentre dans le calendrier....on trouve ça!!!!!!

et là, malgré mes fouilles dans le forum , les messages de debug et la base ....y a rien à faire !!!

Donc si un Jedi Moodle a une méthode à m'enseigner pour traquer ce bug, je suis son padawan!!!

 

Moyenne des évaluations  -
En réponse à nicolas aniort

Re: MESSAGE D'ERREUR: INVALID RECORD

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles

Bonjour,

Pour "tracer" l'erreur, il faudrait activer le débogage sur la plateforme et revenir sur la page où l'erreur se produit.

Il y aura déjà plus d'explications sur l'origine exacte du problème.

L'erreur affichée ici est une erreur générique, de base je dirais un événement lié à un cours qui n'existe plus.
Y a-t-il eu des suppressions de cours à la rentrée ?

Bruno

En réponse à Bruno Malaval

Re: MESSAGE D'ERREUR: INVALID RECORD

par nicolas aniort,
Bonjour Bruno, merci de votre retour.

Pas de suppression de cours à la rentrée .

En mode Debugg , voici le résultat : 


invalidrecord
Impossible de trouver l'enregistrement de données dans la table course de la base de données.
File: /lib/dml/moodle_database.php
Line: 1546

Stack trace:

SELECT id,category FROM {course} WHERE id = ?
[array (
0 => '0',
)]
Error code: invalidrecord
* line 1546 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
* line 1522 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
* line 6733 of /lib/accesslib.php: call to moodle_database->get_record()
* line 307 of /calendar/classes/external/event_exporter_base.php: call to context_course::instance()
* line 94 of /calendar/classes/external/calendar_event_exporter.php: call to core_calendar\external\event_exporter_base->get_other_values()
* line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\calendar_event_exporter->get_other_values()
* line 205 of /calendar/classes/external/day_exporter.php: call to core\external\exporter->export()
* line ? of unknownfile: call to core_calendar\external\day_exporter->core_calendar\external\{closure}()
* line 206 of /calendar/classes/external/day_exporter.php: call to array_map()
* line 101 of /calendar/classes/external/week_day_exporter.php: call to core_calendar\external\day_exporter->get_other_values()
* line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\week_day_exporter->get_other_values()
* line 164 of /calendar/classes/external/week_exporter.php: call to core\external\exporter->export()
* line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\week_exporter->get_other_values()
* line 313 of /calendar/classes/external/month_exporter.php: call to core\external\exporter->export()
* line 215 of /calendar/classes/external/month_exporter.php: call to core_calendar\external\month_exporter->get_weeks()
* line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\month_exporter->get_other_values()
* line 3427 of /calendar/lib.php: call to core\external\exporter->export()
* line 1012 of /calendar/externallib.php: call to calendar_get_view()
* line 244 of /lib/externallib.php: call to core_calendar_external::get_calendar_monthly_view()
* line 59 of /lib/ajax/service.php: call to external_api::call_external_function()

ceci apparaît quand on cherche à accéder au calendrier....


En réponse à nicolas aniort

Re: MESSAGE D'ERREUR: INVALID RECORD

par Pascal Boulerie,
ça ressemble à cette discussion trouvée par les 3 mots-clés :
invalidrecord calendar array

https://moodle.org/mod/forum/discuss.php?d=382281#p1540870
En réponse à Pascal Boulerie

Re: MESSAGE D'ERREUR: INVALID RECORD

par nicolas aniort,
Merci Pascal ,
aprés consultation et suppression d'un abonnement inutile ... j'ai effectué un coup de debugg et voici la réponse

line 1546 of /lib/dml/moodle_database.php: dml_missing_record_exception thrown
line 1522 of /lib/dml/moodle_database.php: call to moodle_database->get_record_select()
line 6733 of /lib/accesslib.php: call to moodle_database->get_record()
line 307 of /calendar/classes/external/event_exporter_base.php: call to context_course::instance()
line 94 of /calendar/classes/external/calendar_event_exporter.php: call to core_calendar\external\event_exporter_base->get_other_values()
line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\calendar_event_exporter->get_other_values()
line 205 of /calendar/classes/external/day_exporter.php: call to core\external\exporter->export()
line ? of unknownfile: call to core_calendar\external\day_exporter->core_calendar\external\{closure}()
line 206 of /calendar/classes/external/day_exporter.php: call to array_map()
line 101 of /calendar/classes/external/week_day_exporter.php: call to core_calendar\external\day_exporter->get_other_values()
line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\week_day_exporter->get_other_values()
line 164 of /calendar/classes/external/week_exporter.php: call to core\external\exporter->export()
line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\week_exporter->get_other_values()
line 313 of /calendar/classes/external/month_exporter.php: call to core\external\exporter->export()
line 215 of /calendar/classes/external/month_exporter.php: call to core_calendar\external\month_exporter->get_weeks()
line 125 of /lib/classes/external/exporter.php: call to core_calendar\external\month_exporter->get_other_values()
line 3427 of /calendar/lib.php: call to core\external\exporter->export()
line 127 of /calendar/view.php: call to calendar_get_view()

Cela a bougé mais pas résolu...
J'ai fait une purge des caches et le cron tourne....j'attends la fin pour essayer de nouveau de visualiser le calendrier...
En réponse à nicolas aniort

Re: MESSAGE D'ERREUR: INVALID RECORD

par nicolas aniort,
Cron terminé....
Pas de changement...
Je continue à chercher....
En réponse à nicolas aniort

Re: MESSAGE D'ERREUR: INVALID RECORD

par Pascal Boulerie,
> 3.6.1

éventuellement : faire une copie de l'installation sur un serveur d'essai, et y voir si une mise à jour à la version plus récente 3.6.x peut supprimer ce souci ??



Une autre suggestion : éplucher directement dans le code Moodle - à l'aide d'un développeur connaissant PHP - en retrouvant en amont de cette erreur la trace de l'origine de la valeur erronée 0 ( zéro ) qui apparait dans la requête erronée...
En réponse à nicolas aniort

Re: MESSAGE D'ERREUR: INVALID RECORD

par Bruno Malaval,
Avatar Moodleurs particulièrement utiles
Bonjour,

Comment avez-vous supprimé l'abonnement inutile ? par l'interface ?
L'erreur au départ un problème de cours ayant l'id "0".

Personnellement, je n'ai pas de cours avec un id égal à 0.

Il n'y a plus cette information dans la dernière copie de l'erreur
Cela me fait penser à un événement associé à un cours, mais pour lequel l'id du cours serait à 0 ...

Donc effectivement, il faudrait pouvoir tracer plus au niveau debug pour savoir quel événement provoque cette erreur.
Sinon, peut-être en regardant dans la table mdl_event, en regardant les derniers événements ajoutés (par le champ timemodified )

Vérifier également dans cette table (mdl_event) que les événements de type "cours" ont bien un id de cours valide, et qu'il n'y en a pas 1 avec l'id 0

Si vous avez accès à la base, la requête serait :
SELECT * FROM `mdl_event` where eventtype like 'course' order by `courseid`
Bruno