Banque de questions - Erreur d'écriture vers la base de données

Banque de questions - Erreur d'écriture vers la base de données

par Ylber Ukzmajli,
Nombre de réponses : 7

Bonjour à tous,

Nous sommes un centre professionnel scolaire de plus de 10'000 élèves répartis dans une vingtaine d'établissements à Neuchâtel, en Suisse.

Nous avons mis à jour notre serveur Moodle en version 4.0 puis en 4.1 il y'a quelques semaines et depuis, dans certaines banques de questions, nous avons un message d'erreur "Erreur d'écriture vers la base de données" qui s'affichent comme le montre la capture d'écran :


Cela n'arrive pas toujours sur la même question et c'est assez aléatoire...

Il n'y a pas d'emojis dans les questions.

Merci d'avance de votre aide,


Ylber

Moyenne des évaluations  -
En réponse à Ylber Ukzmajli

Re: Banque de questions - Erreur d'écriture vers la base de données

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Bonjour Ylber,

Est-ce que le problème se passe sur un type de question en particulier ?

Et est-ce que tu peux activer le mode débogage pour avoir plus d'informations sur ton erreur ?

En réponse à Jean-Gabriel DEPINOY

Re: Banque de questions - Erreur d'écriture vers la base de données

par Ylber Ukzmajli,

Bonsoir, merci pour votre aide et désolé pour le délai de réponse.

Je n'ai pas l'impression que ça concerne un type de question en particulier.

Voici le détail de l'erreur après avoir activé le débogage :

Info de débogage  Data too long for column 'subqid' at row 1
INSERT INTO mdl_question_response_analysis (hashcode,whichtries,questionid,variant,subqid,aid,response,credit,timemodified) VALUES(?,?,?,?,?,?,?,?,?)
[array (
0 => '6d5497df82ac7e330c8afed93e267cefa3cfde21',
1 => 'alltries',
2 => '453174',
3 => 1,
4 => 'Il y a quelques jours, je vous ai fait part de ma volonté d’abandonner mon poste de secrétaire de la société.',
5 => 6,
6 => 'Position 6',
7 => 0.083333333333333329,
8 => 1675887255,
)]
Error code: dmlwriteexception×Ignorer cette notification
Trace de la pile 
  • line 497 of /lib/dml/moodle_database.php: dml_write_exception thrown
  • line 293 of /lib/dml/moodle_read_slave_trait.php: call to moodle_database->query_end()
  • line 1362 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->query_end()
  • line 1408 of /lib/dml/mysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()
  • line 131 of /question/classes/statistics/responses/analysis_for_actual_response.php: call to mysqli_native_moodle_database->insert_record()
  • line 110 of /question/classes/statistics/responses/analysis_for_class.php: call to core_question\statistics\responses\analysis_for_actual_response->cache()
  • line 126 of /question/classes/statistics/responses/analysis_for_subpart.php: call to core_question\statistics\responses\analysis_for_class->cache()
  • line 207 of /question/classes/statistics/responses/analysis_for_question.php: call to core_question\statistics\responses\analysis_for_subpart->cache()
  • line 134 of /question/classes/statistics/responses/analyser.php: call to core_question\statistics\responses\analysis_for_question->cache()
  • line 744 of /mod/quiz/report/statistics/report.php: call to core_question\statistics\responses\analyser->calculate()
  • line 712 of /mod/quiz/report/statistics/report.php: call to quiz_statistics_report->analyse_responses_for_questions()
  • line 665 of /mod/quiz/report/statistics/report.php: call to quiz_statistics_report->analyse_responses_for_all_questions_and_subquestions()
  • line 941 of /mod/quiz/report/statistics/report.php: call to quiz_statistics_report->get_all_stats_and_analysis()
  • line 2503 of /mod/quiz/lib.php: call to quiz_statistics_report->calculate_questions_stats_for_question_bank()
  • line 8075 of /lib/moodlelib.php: call to mod_quiz_calculate_question_stats()
  • line 88 of /question/bank/statistics/classes/helper.php: call to component_callback()
  • line 135 of /question/bank/statistics/classes/helper.php: call to qbank_statistics\helper::load_statistics_for_place()
  • line 188 of /question/bank/statistics/classes/helper.php: call to qbank_statistics\helper::calculate_average_question_stats_item()
  • line 63 of /question/bank/statistics/classes/columns/discrimination_index.php: call to qbank_statistics\helper::calculate_average_question_discrimination_index()
  • line 220 of /question/classes/local/bank/column_base.php: call to qbank_statistics\columns\discrimination_index->display_content()
  • line 1211 of /question/classes/local/bank/view.php: call to core_question\local\bank\column_base->display()
  • line 1131 of /question/classes/local/bank/view.php: call to core_question\local\bank\view->print_table_row()
  • line 1107 of /question/classes/local/bank/view.php: call to core_question\local\bank\view->print_table()
  • line 998 of /question/classes/local/bank/view.php: call to core_question\local\bank\view->display_questions()
  • line 767 of /question/classes/local/bank/view.php: call to core_question\local\bank\view->display_question_list()
  • line 60 of /question/edit.php: call to core_question\local\bank\view->display()

En réponse à Ylber Ukzmajli

Re: Banque de questions - Erreur d'écriture vers la base de données

par Luiggi Sansonetti,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Titulaires du Moodle Course Creator Certificate Avatar Traducteurs
Bonsoir

Au vu de l'erreur "Data too long...", cela ressemble à ce cas déjà vu :
https://moodle.org/mod/forum/discuss.php?d=440388

A voir pour la suite.
En réponse à Luiggi Sansonetti

Re: Banque de questions - Erreur d'écriture vers la base de données

par Jean-Gabriel DEPINOY,
Avatar Moodleurs particulièrement utiles

Effectivement, c'est pour ça que je demandais si le débogage pouvait nous donner un message plus précis. Je pensais au même sujet que vient de donner Luiggi.

En réponse à Jean-Gabriel DEPINOY

Re: Banque de questions - Erreur d'écriture vers la base de données

par Ylber Ukzmajli,

Bonjour,

Désolé pour ma réponse tardive.

J'avais effectivement une version de moodle avec un "+" et j'ai installé la dernière mise à jour sans le "+".

J'ai aussi vérifié le schéma de la base et il y'avait pleins d'incohérences dont la majeure partie des champs varchar de 191 alors qu'ils devaient être à 255.

Malheureusement, le problème est toujours présent. J'ai effectivement de longs textes au lieu d'ids dans le champ "uniqueid" mais je ne veux pas prendre le risque de les supprimer manuellement. Dans le Post que vous m'avez fournis, ces champs se suppriment automatiquement après la MAJ ce qui n'est pas mon cas.

Avez-vous d'autres pistes ?


Merci beaucoup pour votre précieuse aide.

En réponse à Ylber Ukzmajli

Re: Banque de questions - Erreur d'écriture vers la base de données

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

Concernant votre serveur, vous êtes bien certain qu'il possède tous les prérequis techniques pour Moodle 4.1 ?

Quelles sont les versions PHP, base de données ?
Est-ce bien paramétré pour supporter l'UTF8 complet ?
Est-ce que dans la partie "Administration du site > Serveur > Environnement", tout est OK ?

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

Re: Banque de questions - Erreur d'écriture vers la base de données

par Ylber Ukzmajli,

Dans "Environnement", tout est OK.

Version PHP 7.4.33

Version mysql 8.0.32

Toutes les tables de la base sont en utf8mb4_unicode_ci

Max_imput_vars = 5000

Moodle tourne sur un serveur Debian 11 bullseye

Tout est donc bon niveau serveur...

(Modifié par Luiggi Sansonetti. Lien direct supprimé. Écrit initialement le mardi 28 février 2023, 13:54)

Moyenne des évaluations Utile (1)