-
-
Notifications
You must be signed in to change notification settings - Fork 237
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
Symbol upload for Flutter framework #1613
Comments
Relates to getsentry/sentry-dart-plugin#148 |
What's the status of the internal (team-processing) issue for symbol upload? This is pretty important for profiling UX. I don't have access to that repo. |
@krystofwoldrich & @Swatinem - replying here so others who track this issue may be able to pitch in.
No, I don't think we can - symbol files sources described here: https://github.com/flutter/flutter/wiki/Crashes are based on an engine build ID which isn't present anywhere in the native profiler payload (because it's not a debug ID of any of the debug images). Although the engine build ID string is present in the built app binary, checked as: flutter --version
Flutter 3.13.2 • channel stable • [email protected]:flutter/flutter.git
Framework • revision ff5b5b5fa6 (12 days ago) • 2023-08-24 08:12:28 -0500
Engine • revision b20183e040
Tools • Dart 3.1.0 • DevTools 2.25.0
...
strings build/ios/..../Flutter.framework/Flutter | grep b20183e040 it doesn't seem to be available in native code. So while in theory we could make changes to extract this at runtime and propagate it in all the SDKs, it seems a bit fragile. Together with having to do custom handling on the server, it doesn't seem like a best way to go. |
Symbol Collector today is only used for Android symbols (you can actually upload Mach-O files too but they won't be fetched from anywhere. Because the service is hooked up only to the Sentry built in |
I've had a look at the scripts in apple-system-symbols-upload and also a bit into the craft target & the symbol-collector CLI. For Flutter, I imagine the workflow would look like this:
I'd create a (pwsh/dart) script to fetch stuff from the Flutter server and call the symbol-collector CLI to do the actual upload. This script would run in CI periodically. I assume there will be some changes necessary in the symbol-collector (cli, server?) to make this work, but to me it seems like the best value for the effort - extending an existing solution instead of creating a new one. Yes, we could have yet another script/repo that uploads to all platform-specific symbol servers, but I don't really see why symbol-collector shouldn't be doing that instead. If it did, it would also be useful for other SDKs, for example IIRC we're uploading some shared Unity symbols but doing so for each app build instead of having this centralized. WDYT @bruno-garcia? You know symbol-collector best. |
the built-in Sentry |
We still need to upload symbols so let's keep this tracking issue until it's actually finished and verified e2e |
Works fine for iOS/macOS with:
We're also collecting Android symbols although I wasn't able to find an error that would have them in a stack trace... |
OK so at least in errors, the issue of some stack frames not being symbolicated is due to dSYMs missing for the Flutter.framework (or FlutterMacOS.framework). They're currently not shipped with Flutter at the moment so the dart plugin won't upload them to Sentry and thus they can't be used for symbolication, see flutter/flutter#117404 (comment)
Originally posted by @vaind in #1106 (comment)
Possible solutions:
The text was updated successfully, but these errors were encountered: