Recursão de Pilha Infinita ao Usar Sentry

Olá!

Eu queria postar aqui para ver se alguém tinha ideias sobre este bug que estou vendo ao tentar usar o Sentry com o Discourse. Estou querendo usar o Sentry (usando a implementação de servidor de código aberto Glitchtip) para coletar todos os erros gerados em tarefas de segundo plano e no servidor. Sei que o Discourse tem sua própria coleta de erros com o Logster, mas eu queria tentar usar o Sentry para ajudar a rastrear todos os erros que são gerados e inspecioná-los com mais contexto.

Adicionei um inicializador com a configuração do Sentry:

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

  config.dsn =  ENV['SENTRY_DSN']
end

e descobri que estava recursando infinitamente durante as chamadas HTTP das tarefas rake e das tarefas sidekiq (mesmo que elas saíssem limpas antes do sentry ser adicionado). Há mais detalhes e uma forma de reproduzir no problema do Github que abri com o sentry-ruby:

Sei que não estou usando o repositório suportado discourse_docker, mas queria postar aqui de qualquer forma para ver se mais alguém pode ter encontrado um erro semelhante e ter alguma ideia.

Note que existe um plugin sentry do discourse existente (Discourse Sentry), mas ele usa uma biblioteca de cliente não suportada (sentry-raven), então optei por não usá-lo.

Para quem estiver interessado em usar o Sentry com o Discourse, um dos mantenedores do pacote respondeu com uma correção sugerida.

Eles disseram que o problema vinha do MethodProfiler do Discourse que usa alias_method. Eles sugeriram substituí-lo por prepend, que eles disseram estar se tornando mais comum e permitiria que ambas as ferramentas funcionassem juntas.

Não tenho familiaridade suficiente com Ruby para entender as diferenças. Por enquanto, tentarei comentar essa parte do código para desativar a criação de perfil de método do Discourse.

1 curtida

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