Recursion infinie de pile lors de l'utilisation de Sentry

Bonjour !

Je voulais poster ici pour voir si quelqu’un avait des idées sur ce bug que je rencontre en essayant d’utiliser Sentry avec Discourse. Je cherche à utiliser Sentry (en utilisant l’implémentation open source du serveur Glitchtip) pour collecter toutes les erreurs générées dans les tâches d’arrière-plan et dans le serveur. Je sais que Discourse a sa propre collecte d’erreurs avec Logster, mais je voulais essayer d’utiliser Sentry pour aider à suivre toutes les erreurs générées et les inspecter avec plus de contexte.

J’ai ajouté un initialiseur avec la configuration Sentry :

Sentry.init do |config|
  config.breadcrumbs_logger = [:active_support_logger, :http_logger]

  config.dsn =  ENV['SENTRY_DSN']
end

et j’ai constaté qu’il y avait une récursion infinie lors des appels HTTP des tâches rake et des tâches sidekiq (même si elles se terminaient proprement avant l’ajout de Sentry). Il y a plus de détails et une façon de reproduire sur le problème Github que j’ai ouvert avec sentry-ruby :

Je sais que je n’utilise pas le dépôt discourse_docker pris en charge, mais je voulais quand même poster ici pour voir si quelqu’un d’autre avait rencontré une erreur similaire et avait des idées.

Notez qu’il existe un plugin Discourse Sentry existant (Discourse Sentry), mais il utilise une bibliothèque cliente non prise en charge (sentry-raven), j’ai donc choisi de ne pas l’utiliser.

Pour ceux qui souhaitent utiliser Sentry avec Discourse, l’un des mainteneurs du package a répondu avec une correction suggérée.

Ils ont indiqué que le problème provenait du MethodProfiler de Discourse qui utilise alias_method. Ils ont suggéré de le remplacer par prepend, qui, selon eux, devenait plus courant et permettrait aux deux outils de fonctionner ensemble.

Je ne connais pas assez Ruby pour comprendre les différences. Pour l’instant, je vais essayer de commenter cette partie du code pour désactiver le profilage de méthodes de Discourse.

1 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.