Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

par Séverin Terrier,
Nombre de réponses : 6
Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Olivier,

Effectivement, j'ai bien activé la corbeille, et il y a des "chances" que les erreurs rencontrées soient liées à ça.

Sur le dernier problème rencontré, j'ai lancé ces requêtes pour en savoir plus :

SELECT * FROM mdl_course_modules WHERE id=19841;
+-------+--------+--------+----------+---------+----------+------------+-------+--------+---------+---------------------+------------+-----------+------------+------------+---------------------------+----------------+--------------------+-----------------+--------------+--------------------+
| id    | course | module | instance | section | idnumber | added      | score | indent | visible | visibleoncoursepage | visibleold | groupmode | groupingid | completion | completiongradeitemnumber | completionview | completionexpected | showdescription | availability | deletioninprogress |
+-------+--------+--------+----------+---------+----------+------------+-------+--------+---------+---------------------+------------+-----------+------------+------------+---------------------------+----------------+--------------------+-----------------+--------------+--------------------+
| 19841 |    584 |     20 |      172 |    4804 |          | 1511779986 |     0 |      0 |       1 |                   1 |          1 |         0 |          0 |          1 |                      NULL |              0 |                  0 |               0 | NULL         |                  1 |
+-------+--------+--------+----------+---------+----------+------------+-------+--------+---------+---------------------+------------+-----------+------------+------------+---------------------------+----------------+--------------------+-----------------+--------------+--------------------+


Puis (reprenant le numéro du module) :

SELECT * FROM mdl_modules WHERE id=20;
+----+-----------------+------+----------+--------+---------+
| id | name            | cron | lastcron | search | visible |
+----+-----------------+------+----------+--------+---------+
| 20 | bigbluebuttonbn |    0 |        0 |        |       1 |
+----+-----------------+------+----------+--------+---------+

A minima, je connais le module incriminé pour cette occurrence.

Est-ce un élément manquant par rapport à la corbeille, possible ; il faudrait sans doute pousser les tests plus loin.

Séverin

En réponse à Séverin Terrier

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

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

Bonjour,

J'avais laissé ce problème de côté, mais en fait, il apparait régulièrement dans les rapports d'exécution des cron de mes différentes plateformes (en 3.5.5 actuellement).

Par exemple, si je fais des recherches sur les éléments incriminés :

SELECT id, course, module, instance, section FROM mdl_course_modules
WHERE id IN (19841, 21703, 21535);
+-------+--------+--------+----------+---------+
| id    | course | module | instance | section |
+-------+--------+--------+----------+---------+
| 19841 |    584 |     20 |      172 |    4804 |
| 21535 |    639 |     20 |      182 |    5164 |
| 21703 |    640 |     20 |      183 |    5185 |
+-------+--------+--------+----------+---------+


Je constate que c'est toujours le même plugin qui est incriminé, et qu'en l'occurrence c'est BigBlueButton :

SELECT * FROM mdl_modules WHERE id=20;
+----+-----------------+------+----------+--------+---------+
| id | name            | cron | lastcron | search | visible |
+----+-----------------+------+----------+--------+---------+
| 20 | bigbluebuttonbn |    0 |        0 |        |       1 |
+----+-----------------+------+----------+--------+---------+

Même si les valeurs changent, j'ai des résultats équivalents sur les autres plateformes : toujours BigBlueButton !

Il y a donc bien un problème avéré concernant la suppression d'activités BigBlueButton. Je n'ai pas encore pris le temps de fouiller de façon détaillée pour savoir en quoi la corbeille est impliquée (affaire à suivre).

Séverin


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

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

par Patrick Lemaire,
Avatar Développeurs de plugins Avatar Documentation writers Avatar Moodleurs particulièrement utiles Avatar Testeurs Avatar Traducteurs

Bonjour Séverin,

J'imagine que TOUTES les instances de BigBluButtonBN ne rencontrent pas le même sort ? Est-ce qu'il y a un point commun à ces 3 instances ? Ont-elles toutes les 3 une valeur "1" pour 'deletioninprogress' dans la table course_modules ?

C'est déroutant... As-tu signalé ce bug dans le tracker de BigBluButtonBN ? N'y a-t-il pas un lien avec CONTRIB-7660 ?

À bientôt,
Patrick

En réponse à Patrick Lemaire

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

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

Bonjour Patrick,

Merci pour cette piste. En effet, toutes les instances indiquées ont bien la valeur "1" pour 'deletioninprogress' dans la table course_modules  !

Je ne l'ai pas (encore) signalé dans le traqueur, mais il semble que CONTRIB-7660 corresponde bien à mon problème. Je vais voter/commenter.

Séverin

En réponse à Séverin Terrier

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

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

En complément, je précise que si je fais une requête dans la table de BigBlueButton :

SELECT id, course, name FROM mdl_bigbluebuttonbn WHERE id IN (xxx, yyy, zzz);

Avec pour xxx, yyy, zzz les valeurs 'instance' issues de la table mdl_course_modules, je ne retrouve aucun enregistrement.

En résumé, les informations ont été supprimées de la table de BigBlueButton, mais pas de celle des modules d'activité (et quelque chose pose problème pour le faire).

Séverin

En réponse à Séverin Terrier

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

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

Du coup, pensez-vous que je peux supprimer de la table mdl_course_modules les enregistrements qui n'ont plus de correspondances dans la table mdl_bigbluebutton, ou est-ce risqué (et à quel point de vue) ?

Séverin
En réponse à Séverin Terrier

Re: Problème dans le cron - Suppression d'activité - core_course\task\course_delete_modules

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

Bonjour,

Bon, du coup, j'ai lancé une requête plus évoluée, qui permet de voir les activités BigBlueButton en attente de suppression :

SELECT cm.id, cm.course, cm.module, m.name, bbb.type, bbb.name, cm.instance, cm.section
FROM       mdl_course_modules  cm
     JOIN  mdl_modules         m   ON m.id   = cm.module
LEFT JOIN  mdl_bigbluebuttonbn bbb ON bbb.id = cm.instance
WHERE cm.deletioninprogress = 1
AND   m.name = 'bigbluebuttonbn';

Ce qui me donne un résultat de la forme :

id	course	module	name	        type	name	instance section
59588	2262	23	bigbluebuttonbn	NULL	NULL	293	 29067
63297	2061	23	bigbluebuttonbn	NULL	NULL	298	 26800
63334	2061	23	bigbluebuttonbn	1	TD1	299	 26800
63335	2061	23	bigbluebuttonbn	1	TD2	300	 26800
67828	2868	23	bigbluebuttonbn	NULL	NULL	313	 35327
67844	2632	23	bigbluebuttonbn	NULL	NULL	315	 33486
71181	2704	23	bigbluebuttonbn	NULL	NULL	322	 34111
71259	2877	23	bigbluebuttonbn	NULL	NULL	324	 35571
71285	2865	23	bigbluebuttonbn	NULL	NULL	325	 35227

Je constate qu'il y a deux instances de BigBlueButton qui comportent (encore) des données, et les autres correspondent bien aux éléments pour lesquels je retrouve des messages d'erreur dans le cron (tâche course_delete_modules).

Du coup, je peux supprimer les lignes correspondantes avec la commande suivante :

DELETE cm
FROM       mdl_course_modules  cm
     JOIN  mdl_modules         m   ON m.id   = cm.module
LEFT JOIN  mdl_bigbluebuttonbn bbb ON bbb.id = cm.instance
WHERE cm.deletioninprogress = 1
AND   m.name = 'bigbluebuttonbn'
AND   bbb.name IS NULL;

Et effectivement, après ces suppressions, les messages d'erreur disparaissent des rapports d'exécution du cron.

Séverin

Moyenne des évaluations Utile (1)