Problème lors de la duplication d'une ressource test

Re: Problème lors de la duplication d'une ressource test

par Patrick Lemaire,
Nombre de réponses : 3
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Steve,

En effet, Tim Hunt (merci à lui) a corrigé le bug référencé MDL-63260 (à savoir « Duplicating quiz with random question has exponential questions growth ».

Sachez tout de même que le correctif est intégré dans les versions Moodle 3.5 et supérieures. Si vous avez une version inférieure, il est temps de mettre à jour votre plateforme langue tirée

A bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Problème lors de la duplication d'une ressource test

par Nicolas Mouillet,

Bonjour,

Nos enseignants utilisent beaucoup la duplication des questionnaires, nous avons donc également rencontré ce bug. Nous avions 12.300.000 entrées inutilement créées dans la base de données suivant cette requête:

SELECT q.id FROM mdl_question AS q 
LEFT JOIN mdl_quiz_slots AS qslots ON q.id = qslots.questionid
WHERE qslots.questionid IS NULL AND q.qtype = 'random'

Votre discussion ici m'a bien aidé. J'ai donc testé le patch de Tim Hunt. En réalité il ne s'agit pas vraiment d'un patch mais plutôt d'une tâche planifié de nettoyage de la base de données. Les questionnaires sont toujours dupliqués mais la tâche planifiée de Moodle (via le cron) efface petit à petit les questionnaires superflus, par lot de 10000 toutes les 12h par défaut (cfr. les "Tâches programmées" dans Moodle: "Nettoyage du questionnaire" - \mod_questionnaire\task\cleanup).

Autant dire que dans notre cas, ce patch n'a pas été suffisant, même en modifiant la fréquence de la tâche planifiée. J'ai donc appliqué cette requête directement en base de données pour supprimer d'une traite toutes les entrées en trop (backups réalisés au préalable):

DELETE FROM mdl_question 
WHERE id IN 
(
SELECT ids.id 
    FROM (
SELECT q.id 
        FROM mdl_question AS q 
LEFT JOIN mdl_quiz_slots AS qslots ON q.id = qslots.questionid
WHERE qslots.questionid IS NULL AND q.qtype = 'random' 
) ids
)

Au final, la duplication des questionnaires fonctionne à nouveau mais prend du temps, et de plus en plus de temps à chaque duplication jusqu'au prochain nettoyage par la tâche planifiée de Tim Hunt. La solution "long terme" proposée par Tim Hunt semble être de supprimer le type de question "random": https://tracker.moodle.org/browse/MDL-64595 et le remplacer par un autre mode de fonctionnement: https://tracker.moodle.org/browse/MDL-61267


Nicolas

Moyenne des évaluations Utile (4)
En réponse à Nicolas Mouillet

Re: Problème lors de la duplication d'une ressource test

par Joseph Rézeau,
Avatar Développeurs Avatar Développeurs de plugins Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

"Nos enseignants utilisent beaucoup la duplication des questionnaires, nous avons donc également rencontré ce bug."

Attention à ne pas confondre le nom de ces 2 types d'activité:

l'activité Quiz (en français Test)

l'activité Questionnaire (en français Questionnaire)

En réponse à Joseph Rézeau

Re: Problème lors de la duplication d'une ressource test

par Nicolas Mouillet,

En effet, je fais souvent l'amalgame. Il s'agit bien de l'activité Test.

Merci pour la correction.