Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(debug): Symbolicate message and non-Error stacktraces locally #3420

Merged
merged 4 commits into from
Dec 1, 2023

Conversation

krystofwoldrich
Copy link
Member

@krystofwoldrich krystofwoldrich commented Nov 24, 2023

📢 Type of change

  • Bugfix

📜 Description

This PR fixes local symbolication in debug mode.

Before this PR captured non-Error exceptions (strings, number, objects) would result in missing stack trace.

Before this PR stack trace attached to the captured message would be minified.

This PR removes checks for RN below 0.65 as the SDK doesn't work on those since v5.

This PR adds integration tests with mocked current React Native dev tools responses.

💡 Motivation and Context

💚 How did you test it?

sample app

Screenshot 2023-11-27 at 10 04 47

debug app unhandled rejection without stack trace before this PR -> https://sentry-sdks.sentry.io/issues/4665930607/events/f654a00e277a4dd48916c0c9d2113471/

Screenshot 2023-11-27 at 10 04 23

debug unhandled rejection without stack trace after this PR -> https://sentry-sdks.sentry.io/issues/4666187537/events/04f82d0b70de49acaec61038a00a5e39/

Screenshot 2023-11-27 at 10 09 35

debug app capture message before this PR -> https://sentry-sdks.sentry.io/issues/4665887083/events/190f198eee234da0884fe2b69ae2742e/

Screenshot 2023-11-27 at 10 09 50

debug app capture message after this PR -> https://sentry-sdks.sentry.io/issues/4666389286/events/e4f3c35e1a24460e9fe595563da5049b/

📝 Checklist

  • I reviewed submitted code
  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled
  • All tests passing
  • No breaking changes

🔮 Next steps

Copy link
Contributor

github-actions bot commented Nov 24, 2023

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1207.04 ms 1216.74 ms 9.70 ms
Size 2.36 MiB 2.87 MiB 521.44 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d0bf494+dirty 1289.40 ms 1298.40 ms 9.00 ms
3853f43+dirty 1221.82 ms 1242.64 ms 20.82 ms
e73f4ed+dirty 1243.27 ms 1244.52 ms 1.25 ms
9c48b2c+dirty 1246.96 ms 1255.73 ms 8.77 ms
27ef4ee+dirty 1293.52 ms 1296.08 ms 2.56 ms
6e8584e+dirty 1274.50 ms 1296.82 ms 22.32 ms
acadc0f+dirty 1264.38 ms 1290.06 ms 25.68 ms
8900e1a+dirty 1210.27 ms 1218.66 ms 8.39 ms
e2b64fe+dirty 1232.22 ms 1255.20 ms 22.98 ms
e5c9b8b+dirty 1258.57 ms 1267.32 ms 8.75 ms

App size

Revision Plain With Sentry Diff
d0bf494+dirty 2.36 MiB 2.83 MiB 481.15 KiB
3853f43+dirty 2.36 MiB 2.85 MiB 499.81 KiB
e73f4ed+dirty 2.36 MiB 2.82 MiB 469.44 KiB
9c48b2c+dirty 2.36 MiB 2.85 MiB 495.77 KiB
27ef4ee+dirty 2.36 MiB 2.85 MiB 500.03 KiB
6e8584e+dirty 2.36 MiB 2.88 MiB 533.17 KiB
acadc0f+dirty 2.36 MiB 2.83 MiB 480.37 KiB
8900e1a+dirty 2.36 MiB 2.83 MiB 479.25 KiB
e2b64fe+dirty 2.36 MiB 2.85 MiB 495.80 KiB
e5c9b8b+dirty 2.36 MiB 2.87 MiB 520.43 KiB

Copy link
Contributor

github-actions bot commented Nov 27, 2023

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 429.45 ms 458.82 ms 29.37 ms
Size 17.73 MiB 19.84 MiB 2.11 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
e5c9b8b 409.02 ms 426.66 ms 17.64 ms
d0bf494+dirty 375.37 ms 395.14 ms 19.77 ms
575f9da 415.26 ms 422.98 ms 7.72 ms
0db0c72 372.12 ms 386.00 ms 13.88 ms
e73f4ed+dirty 332.96 ms 354.33 ms 21.37 ms
acadc0f+dirty 373.24 ms 381.51 ms 8.27 ms
8900e1a+dirty 430.68 ms 456.13 ms 25.44 ms
3ffcddd 302.92 ms 315.80 ms 12.88 ms
d361d38 354.10 ms 381.69 ms 27.59 ms
f06c879 408.41 ms 424.54 ms 16.13 ms

App size

Revision Plain With Sentry Diff
e5c9b8b 17.73 MiB 19.83 MiB 2.10 MiB
d0bf494+dirty 17.73 MiB 19.75 MiB 2.02 MiB
575f9da 17.73 MiB 19.83 MiB 2.10 MiB
0db0c72 17.73 MiB 19.75 MiB 2.02 MiB
e73f4ed+dirty 17.73 MiB 20.04 MiB 2.31 MiB
acadc0f+dirty 17.73 MiB 19.75 MiB 2.01 MiB
8900e1a+dirty 17.73 MiB 19.75 MiB 2.01 MiB
3ffcddd 17.73 MiB 19.75 MiB 2.02 MiB
d361d38 17.73 MiB 19.81 MiB 2.08 MiB
f06c879 17.73 MiB 19.85 MiB 2.12 MiB

Copy link
Contributor

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 346.64 ms 390.44 ms 43.80 ms
Size 7.15 MiB 8.11 MiB 987.73 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d0bf494+dirty 253.73 ms 308.23 ms 54.49 ms
3853f43+dirty 278.12 ms 338.72 ms 60.60 ms
e73f4ed+dirty 262.98 ms 311.02 ms 48.04 ms
9c48b2c+dirty 270.82 ms 321.12 ms 50.30 ms
27ef4ee+dirty 296.71 ms 351.00 ms 54.29 ms
6e8584e+dirty 383.37 ms 400.84 ms 17.47 ms
acadc0f+dirty 259.04 ms 304.67 ms 45.63 ms
8900e1a+dirty 371.40 ms 377.70 ms 6.31 ms
e2b64fe+dirty 258.82 ms 304.26 ms 45.44 ms
e5c9b8b+dirty 335.40 ms 360.06 ms 24.67 ms

App size

Revision Plain With Sentry Diff
d0bf494+dirty 7.15 MiB 8.04 MiB 910.85 KiB
3853f43+dirty 7.15 MiB 8.08 MiB 959.34 KiB
e73f4ed+dirty 7.15 MiB 8.09 MiB 965.94 KiB
9c48b2c+dirty 7.15 MiB 8.07 MiB 947.16 KiB
27ef4ee+dirty 7.15 MiB 8.08 MiB 959.49 KiB
6e8584e+dirty 7.15 MiB 8.13 MiB 1002.18 KiB
acadc0f+dirty 7.15 MiB 8.03 MiB 903.20 KiB
8900e1a+dirty 7.15 MiB 8.03 MiB 901.79 KiB
e2b64fe+dirty 7.15 MiB 8.07 MiB 947.16 KiB
e5c9b8b+dirty 7.15 MiB 8.10 MiB 980.41 KiB

Copy link
Contributor

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1211.67 ms 1214.88 ms 3.21 ms
Size 2.92 MiB 3.43 MiB 525.08 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
d0bf494+dirty 1266.20 ms 1267.52 ms 1.32 ms
3853f43+dirty 1271.74 ms 1278.04 ms 6.30 ms
e73f4ed+dirty 1282.90 ms 1309.30 ms 26.40 ms
9c48b2c+dirty 1253.39 ms 1256.30 ms 2.91 ms
27ef4ee+dirty 1236.41 ms 1244.90 ms 8.49 ms
6e8584e+dirty 1271.71 ms 1281.26 ms 9.55 ms
acadc0f+dirty 1271.12 ms 1272.28 ms 1.16 ms
8900e1a+dirty 1268.36 ms 1273.04 ms 4.68 ms
e2b64fe+dirty 1285.78 ms 1297.56 ms 11.78 ms
e5c9b8b+dirty 1276.90 ms 1280.92 ms 4.02 ms

App size

Revision Plain With Sentry Diff
d0bf494+dirty 2.92 MiB 3.40 MiB 488.08 KiB
3853f43+dirty 2.92 MiB 3.41 MiB 503.54 KiB
e73f4ed+dirty 2.92 MiB 3.38 MiB 475.71 KiB
9c48b2c+dirty 2.92 MiB 3.41 MiB 499.97 KiB
27ef4ee+dirty 2.92 MiB 3.41 MiB 503.72 KiB
6e8584e+dirty 2.92 MiB 3.44 MiB 536.52 KiB
acadc0f+dirty 2.92 MiB 3.39 MiB 487.34 KiB
8900e1a+dirty 2.92 MiB 3.39 MiB 485.96 KiB
e2b64fe+dirty 2.92 MiB 3.41 MiB 499.97 KiB
e5c9b8b+dirty 2.92 MiB 3.43 MiB 524.50 KiB

Copy link
Collaborator

@lucas-zimerman lucas-zimerman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! LGTM!

@krystofwoldrich krystofwoldrich merged commit 5762512 into main Dec 1, 2023
61 checks passed
@krystofwoldrich krystofwoldrich deleted the kw-fix-local-synthetic-symbolication branch December 1, 2023 09:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants