|Snappy Symbolication Server|
Introduce the Feature
Goal of Feature, what is trying to be achieved (problem solved, use cases, etc)
- Map library offsets to the function name and optionally line information
- Web application that takes as input a library name, version and address and translate them to the function name
- Uses the breakpad SYM files for this information
- Used by the profiler to symbolicate it's trace file
- Used by telemetry to symbolicate chrome hangs when the browser is froozen
- uses a build flag that can be disabled
What solutions/approaches were considered other than the proposed solution?
- Running a symbolication script for the chrome telemetry, but does not address the need of the profiler
- The profiler could simply download the PDBs, but because these files are so big this would significantly slow down the profiling performance.
Why was this solution chosen?
- Solve the need of both the profiler and telemetry while performing superious user experience but not requiring users of the profiler to download several MBs of PDBs.
Any security threats already considered in the design and why?
- any significant privacy concerns?
- no, only a basic api, no identifiers passed back and forth
- this is the privacy-sensitive way to send back chromehang reports: because the stackwalking occurs on the client, we aren't sending a minidump which may contain user data (this approach chosen in response to prior decision that we could not send minidumps as part of telemetry) - no significant changes to the product code - do not want to expose Flash symbols via this API, https://bugzilla.mozilla.org/show_bug.cgi?id=732485 filed
- fingerprinting via crash info
- ships only in the profiling branch right now, might go to nightly at some point
- user must opt-in to 2 add-ons
- Gecko Profiler Add-on (Developped by BenWa)
- about:snappy Add-on (Developped by jmuizelaar)
|Action Item Status||Complete|
= $all-$resolved ?> Open; = $resolved ?> Resolved; = $all ?> Total (100% complete)