Crash reporting overhaul: Difference between revisions

Jump to navigation Jump to search
Added the "Glean-based crash pings" project
(Added a link to the crash handling crate which provides exception handlers in Rust, though not yet matching our requirements in full)
(Added the "Glean-based crash pings" project)
Line 198: Line 198:
* Localization is done via an INI file and cannot use Fluent
* Localization is done via an INI file and cannot use Fluent
* Given the hard-coded nature of the UI I don't know how it behave with RTL language, probably very poorly
* Given the hard-coded nature of the UI I don't know how it behave with RTL language, probably very poorly
* It does not support Glean-based telemetry


=== Plan ===
=== Plan ===
Line 208: Line 209:
* We should leverage Rust's asynchronous facility to make processing non-blocking and the UI responsive
* We should leverage Rust's asynchronous facility to make processing non-blocking and the UI responsive
* We should add platform-independent tests for the parts of the code that do not require UI interaction
* We should add platform-independent tests for the parts of the code that do not require UI interaction
== Glean-based crash pings ==
Status: not started<br>
Developer(s):<br>
Source code: https://github.com/mozilla/glean/<br>
Original source code:<br>
* https://hg.mozilla.org/mozilla-central/file/tip/toolkit/crashreporter/client/ping.cpp
* https://hg.mozilla.org/mozilla-central/file/tip/toolkit/components/crashes/CrashManager.in.jsm#l711
Bugs:<br>
=== Description ===
For every crash we detect Firefox sends a crash ping holding information that
would help us detect issues and prioritize which ones should be fixed. This
information is highly structured, resembles the JSON output of Socorro's
stackwalker, and unfortunately has seen relatively little use in the last few
years mostly because it's hard to process.
=== Rationale ===
The [https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/data/crash-ping.html crash ping]
uses legacy telemetry. This is problematic for a number of reasons: we don't
have good interfaces to process them, the tools we use to extract information
can be complicated to use and the legacy telemetry framework doesn't see active
development as it's been largely replaced by
[https://docs.telemetry.mozilla.org/concepts/glean/glean.html Glean]. Last but
not least Fenix does not support legacy telemetry. While Fennec had
full-featured crash pings Fenix doesn't have any at all, leading to a rather
large blind spot in our telemetry.
The best way to address all of the above is to migrate the crash ping to Glean.
=== Plan ===
This migration requires several steps with changes happening in different parts
of the codebase:
* First of all the new Glean-based crash ping needs to be designed. Some parts of it might require changes to Glean's back-end to be able to process the data that it will carry
* Once this is done the code in the CrashManager that assembles the ping for child process crashes needs to be adjusted to use Glean instead of legacy telemetry
* The crash reporter client needs to be instructed to send Glean crash pings. Currently Glean doesn't support C++ so this work will need to happen after we rewrite the crash reporter client
* Last but not least support for the new crash ping needs to be added to Fenix


== minidump-analyzer ==
== minidump-analyzer ==
Confirmed users
407

edits

Navigation menu