Open Bug 1588742 Opened 5 years ago Updated 2 years ago

Replace breakpad's client code with a Rust implementation

Categories

(Toolkit :: Crash Reporting, task)

task

Tracking

()

People

(Reporter: gsvelto, Unassigned)

References

(Depends on 8 open bugs, Blocks 1 open bug)

Details

This is the core bug to replace the existing client-side crash reporter implementation. It's made of multiple parts, many of which will be platform-specific so I will most likely split this bug further in the future. What needs to be done is:

  • Consolidate the existing crash reporter interface so that it can be exposed from a Rust crate
  • Write platform-specific exception handlers in Rust
  • Write platform-specific functionality to generate minidumps from crashed processes
  • Write a separate daemon that will be in charge of generating the crashes (no in-the-crashed-process minidump generation this time)
  • Rewrite the code handling annotations to talk to the daemon
  • Tie it all together in Firefox replacing the existing code

Since we're changing everything on the client side and moving to an out-of-process implementation things like the CrashReporterHost and other IPC-related machinery should be removed.

Taking this as I will be actively working on it from now on. In addition to the description in comment 4 and the original design document some more requirements were added to the rewrite:

  • We should be able to inject the exception handler in an unsuspecting process to support cases like SpiderMonkey testing (see bug 1522180 comment 3)
  • We'd like to re-use the control code between Linux, macOS and other POSIX-ish platforms to keep platform-specific code to a minimum.
Depends on: 1620988
Depends on: 1620989
Depends on: 1620990
Depends on: 1620991
Depends on: 1620993
Depends on: 1620994
Depends on: 1620995
Depends on: oop-crashreporter
Depends on: 1621000
Depends on: 1688882
Depends on: 1689358
Severity: normal → S3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.