Sentry-javascript: يتم تجاهل الأخطاء التي تظهر في globalEventProcessors بصمت

تم إنشاؤها على ٢٢ أغسطس ٢٠١٩  ·  3تعليقات  ·  مصدر: getsentry/sentry-javascript

الحزمة + الإصدار

@sentry/[email protected]

وصف

يتم التقاط الأخطاء التي تم إلقاؤها في معالجات الأحداث العالمية بواسطة Sentry lib ، مما يؤدي إلى بدء التقاط خطأ آخر والذي بدوره يستدعي نفس معالج الحدث العالمي الذي سيؤدي إلى حدوث خطأ مرة أخرى. يتكرر هذا لعدد غير معروف من المرات (حتى يفيض المكدس ربما؟). تكمن المشكلة في عدم وجود أي أثر للخطأ الأصلي ، ولا أي أخطاء لاحقة ناتجة عن معالج الأحداث العالمية الخاطئ. من الواضح أن 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 التقييمات