Sentry-javascript: globalEventProcessors์—์„œ ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜๋Š” ์ž๋™์œผ๋กœ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2019๋…„ 08์›” 22์ผ  ยท  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 ๋Œ“๊ธ€

๋‚˜๋Š” ์„ค๋ช… ๋ฃจํ”„๋Š”, ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” (์šฐ๋ฆฌ๋Š” ํฐ ๊ฐ€์ง€๊ณ ๋Š”, shoudn't ์˜ค๋ฅ˜๊ฐ€ ์‚ผํ‚จ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค catch ์šฐ๋ฆฌ์˜ ์•ฝ์† ์ฒด์ธ์— ์ ˆ์„ ๐Ÿค”). ๊ณง ์กฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์‹ ๊ณ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@kamilogorek ์ด ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์ฃผ๋ณ€์„ ๋‘˜๋Ÿฌ

@mogelbrod ํ˜„์žฌ debug: true ํ•˜๊ณ  ๋ฌด์–ธ๊ฐ€๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์—์„œ ๋” ๋‚˜์€ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/getsentry/sentry-javascript/pull/2416

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰