Lors de la test de modifications relatives à la suppression de sujets, sans rapport avec le problème principal, dans une instance de développement locale, la suppression d’un sujet a renvoyé une erreur 500 Internal Server Error.
L’instance de développement qui a généré l’erreur exécutait exactement ce commit de Discourse :
La requête était :
DELETE /t/35
et l’exception provient du rappel :post_destroyed de discourse-events :
NameError (uninitialized constant DiscourseEvents::Calendar::Extractor)
plugins/discourse-events/plugin.rb:639:in 'block (2 levels) in Plugin::Instance#activate!'
lib/plugin/instance.rb:676:in 'block in Plugin::Instance#on'
lib/discourse_event.rb:13:in 'block in DiscourseEvent.trigger'
lib/discourse_event.rb:12:in 'DiscourseEvent.trigger'
lib/post_destroyer.rb:91:in 'PostDestroyer#destroy'
app/controllers/topics_controller.rb:818:in 'TopicsController#destroy'
Le rappel concerné semble tenter d’appeler :
DiscourseEvents::Calendar::Extractor.destroy(post)
La page d’erreur complète signale :
NameError (uninitialized constant DiscourseEvents::Calendar::Extractor)
Le navigateur reçoit par conséquent une erreur 500, même si PostDestroyer#destroy a déjà atteint le point où il déclenche :post_destroyed, ce qui signifie que la suppression a peut-être déjà été appliquée avant que le rappel ne lève l’exception.
Cela s’est produit en développement. DiscourseEvents::Calendar::Extractor est normalement fourni par events, donc je me demande si cela pourrait être lié au rechargement en mode développement/à l’état des plugins plutôt qu’à l’absence de l’implémentation elle-même.
Je travaillais sur du code de suppression de sujets sans rapport à ce moment-là, mais l’exception elle-même se situe entièrement dans le gestionnaire :post_destroyed de discourse-events.
D’autres ont-ils rencontré DiscourseEvents::Calendar::Extractor devenant non défini dans une instance de développement ? Cela pourrait-il être lié au rechargement en développement/à l’état des plugins, ou le rappel :post_destroyed devrait-il charger l’extracteur différemment ?
