Sentry-javascript: Ошибки в globalEventProcessors игнорируются.

Созданный на 22 авг. 2019  ·  3Комментарии  ·  Источник: getsentry/sentry-javascript

Пакет + Версия

@sentry/[email protected]

Описание

Ошибки, возникшие в глобальных обработчиках событий, перехватываются библиотекой Sentry, инициируя еще один захват ошибок, который, в свою очередь, вызывает тот же глобальный обработчик событий, который снова выдаст ошибку. Это повторяется неизвестное количество раз (возможно, пока стек не переполнится?). Проблема в том, что нет никаких следов ни исходной ошибки, ни каких-либо последующих ошибок, вызванных неисправным глобальным процессором событий. Sentry, очевидно, не может отправить ошибку в восходящем направлении, но также ничего не регистрируется.

Обнаружение того, что неисправный глобальный обработчик событий не позволяет сообщать о каких-либо наших ошибках, заняло некоторое время, поэтому было бы здорово, если бы SDK мог обнаруживать и регистрировать эти ошибки автоматически. А пока я рекомендую заключить код обработки в блок try / catch и вручную регистрировать ошибки:

Sentry.addGlobalEventProcessor(event => {
  try {
    event.missingProperty.assignment = true
  } catch (err) {
    console.error('sentry global event processor threw error', err)
  }
  return event
})

Confirmed Bug

Все 3 Комментарий

Мне не удалось зациклить его, как описано, однако я могу подтвердить, что ошибка проглочена (этого не должно быть, поскольку у нас есть большое предложение catch в нашей цепочке обещаний 🤔). Я скоро займусь этим. Спасибо за отчет.

@kamilogorek Удалось ли вам разобраться в этой проблеме?

@mogelbrod в настоящее время вы получите журнал отладки, когда вы установите debug: true и что-то не сработает.
Просто реализовано лучшее решение здесь https://github.com/getsentry/sentry-javascript/pull/2416

Была ли эта страница полезной?
0 / 5 - 0 рейтинги