Les événements à venir affichent une erreur de serveur 500

Si je clique sur « Événements à venir » - je suppose que c’est fourni par discourse-events - j’obtiens une erreur serveur 500 :

Started GET "/discourse-post-event/events.json" for 91.37.126.155 at 2022-03-15 19:02:36 +0000
Processing by DiscoursePostEvent::EventsController#index as JSON
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 500 Internal Server Error in 913ms (ActiveRecord: 0.0ms | Allocations: 82862)
NoMethodError (undefined method `>=' for nil:NilClass)
(eval):17:in `_fast_attributes'
app/controllers/application_controller.rb:395:in `block in with_resolved_locale'
app/controllers/application_controller.rb:395:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:355:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:177:in `call'

J’utilise discourse 2.7.12 avec discourse-calender 0.2 et discourse-saml 0.1.

Quelqu’un sait comment résoudre ce problème ?

2 « J'aime »

Pouvez-vous reproduire sur notre canal de diffusion par défaut (tests-passés) ?

1 « J'aime »

Désolé. Malheureusement, je ne peux pas reproduire cela sur une autre version. Il s’agit d’un système de production qui sera mis à jour vers la version 2.8.X « bientôt » :slight_smile:

Peut-être que quelqu’un d’autre pourra vérifier/tester si cela se produit également avec la version actuelle. Ou quelqu’un ayant une grande expérience du code pourra valider que cela ne devrait pas se produire.

La chose intéressante est qu’avec certains comptes utilisateurs, ce problème se produit, avec d’autres non. Je ne trouve pas la cause.

1 « J'aime »

Pour ma part, j’ai aussi l’erreur et je suis sur la 2.9.0Beta2.
En regardant dans /logs, je trouve ceci chaque fois que j’essaie de voir les événements à venir :

NoMethodError (undefined method `>=' for nil:NilClass)
(eval):17:in `_fast_attributes'
app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
app/controllers/application_controller.rb:397:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:358:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:198:in `call'

Après des tests, je n’ai pas pu reproduire cette erreur sur la version actuelle de Discourse.

Discourse - 2.9.0.beta2
Discourse Calendar - v0.2
Microsoft Windows 10 Pro - Version 10.0.18363 Build 18363
Google Chrome - Version 99.0.4844.74

La navigation vers [discourse.example.com]/upcoming-events semble fonctionner correctement et affiche le calendrier comme prévu.

2 « J'aime »

Hmm… ok.

J’ai l’impression qu’il y a un problème sur mon instance, comme si le calendrier recherchait un post qui, pour une raison quelconque, est manquant.

Y a-t-il un moyen de comprendre ce que signifie réellement cette NoMethodError (undefined method >=’ for nil:NilClass)` ?

Quelle serait la façon de déboguer à partir d’ici ?

Vous pourriez essayer le mode sans échec [YourSite]/safe-mode avec les thèmes et les plugins non officiels désactivés pour voir si cela permet d’identifier l’un d’entre eux comme étant à l’origine du problème ?

1 « J'aime »

Je ne connaissais pas le mode sans échec, très intéressant.

Malheureusement, j’ai toujours le message d’erreur :frowning:

Je viens de remarquer que je ne rencontre pas ce problème avec Chromium. Cela pourrait être une solution de contournement pour d’autres.
Mon navigateur principal est Firefox-esr (91.8.0esr) fonctionnant sous Debian 11.

Je travaille avec @sbernhard sur la même instance de discourse (2.7.12) - en tant que modérateur, je ne suis pas un développeur/administrateur. Jusqu’à présent, l’“Erreur interne du serveur 500” est apparue sur les comptes ayant des droits de modération. Les utilisateurs normaux ne semblent pas rencontrer cette erreur - ils peuvent accéder aux “Événements à venir” au même moment où les comptes ayant des droits de modération affichent l’erreur (du moins, nous n’avons pas encore reçu d’autres rapports d’erreur).

En tant que modérateur, je rencontre l’erreur avec Firefox 100, Edge 101 et Chromium 101 à jour sous Windows 10 Pro, mais aussi sous Ubuntu avec Firefox. Avec un compte utilisateur standard, je ne rencontre pas l’erreur sur les mêmes systèmes.

Avez-vous trouvé une solution à ce problème @Sticchio / @sbernhard ?

J’ai actuellement un problème similaire sur l’un de mes sites.

Non, malheureusement non. L’erreur se produit toujours. Mais nous sommes toujours sur Discourse 2.8.10. Je ne sais pas si cela a été corrigé dans une version ultérieure.

1 « J'aime »

J’ai toujours cette erreur

Je suis sur Discourse 3.2.0.beta1-dev et Chromium 116.

Quelqu’un d’autre peut-il le reproduire ?

Oui.
Même version pour Discourse et Chromium. Même problème avec Firefox 116.

1 « J'aime »