Ricorsione Stack Infinita quando si usa Sentry

Ciao!

Volevo scrivere qui per vedere se qualcuno avesse idee su questo bug che sto riscontrando quando provo a usare Sentry con Discourse. Sto cercando di usare Sentry (usando l’implementazione open source del server Glitchtip) per raccogliere tutti gli errori generati nei task in background e nel server. So che Discourse ha la sua raccolta errori con Logster, ma volevo provare a usare Sentry per aiutare a tracciare tutti gli errori generati e ispezionarli con più contesto.

Ho aggiunto un inizializzatore con la configurazione di Sentry:

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

  config.dsn =  ENV['SENTRY_DSN']
end

e ho scoperto che stava ricorsivamente all’infinito durante le chiamate HTTP dei task rake e dei task sidekiq (anche se uscivano in modo pulito prima che Sentry venisse aggiunto). Ci sono maggiori dettagli e un modo per riprodurre sul problema di Github che ho aperto con sentry-ruby:

So che non sto usando il repository supportato discourse_docker, ma volevo comunque scrivere qui per vedere se qualcun altro avesse riscontrato un errore simile e avesse qualche idea.

Nota che esiste già un plugin Sentry per Discourse (Discourse Sentry), ma utilizza una libreria client non supportata (sentry-raven), quindi ho scelto di non usarla.

Per chiunque sia interessato a utilizzare Sentry con Discourse, uno dei manutentori del pacchetto ha risposto con una correzione suggerita.

Hanno affermato che il problema proveniva da MethodProfiler di Discourse che utilizza alias_method. Hanno suggerito di sostituirlo con prepend che, a loro dire, stava diventando più comune e avrebbe permesso a entrambi gli strumenti di lavorare insieme.

Non ho abbastanza familiarità con Ruby per capire le differenze. Per ora, proverò a commentare questa parte di codice per disabilitare il profiling dei metodi di Discourse.

1 Mi Piace

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