Breakpad/Design
< Breakpad
Development Team & Schedule
The Team
- Airbag Client (limited scope) - Airbag Project Team/Google
- Airbag Client Customization - dcamp (Dave Camp)
- Airbag Server
- Crash/Blackbox Manager (Repeater + Collector) - morgamic (Mike Morgan) & TBD
- Digester - luser (Ted Mielczarek) & TBD
- Airbag Tools & Reporting - coop (Chris Cooper) & jay (Jay Patel)
The Schedule
- TBD - We should try to set some dates for:
- Setting product/component requirements
- Defining component specifications
- Milestones for each component
Airbag Client
- Platform integration for Windows, Mac OS X, Linux
- UI parity with Mozilla products
- opt-in control for users to participate in sending data at all, and confirmation before sending any individual blackbox. also the ability to supply e-mail contact info, last visited site, and comments about activity leading up to the crash.
- Collect and send data to Airbag Server
- Product info (product, version, platform, build id, airbag version)
- System information
- os version
- processor, processor speed
- available and in use memory and diskspace
- screen size resolution and any available info on graphic system
- process list for other programs that might be in use and conflicting
- command line start up options --
- extensions loaded (new)
- we could also consider improvements like auto filling crash url with info out of history, or send a recent history list under user control.
- Stability statistics (total runtime, time since last crash, crash frequency, etc.)
- Store incident queue/history
- Talkback also has the ability to receive config changes back from the server to control operations of the client. This is useful for such things as controls for shutting down the client for obsolete versions where we no longer are interested in the data, or for as another throttling mechanism.
Airbag Crash/Blackbox Manager (Repeater + Collector?) [need good name]
- Apache web server to manage incoming blackboxes via HTTPS
- Pass blackbox data through the firewall
- Monitor queue and blackbox status
- Check client version and state and be able to serve config changes to Airbag Client (e.g. send message to disable client)
- Prep blackbox for handoff to Digester
- If we provide the configuration control feature the repeater also needs to push configuration info back down to the client for such things like "turn yourself off", "slow down your retry rate" and other control options.
Airbag Symbols Store
- Infrastructure should allow build systems to push symbols to the Symbols Store
- Store symbols for each build/release based on product information (similar to AUS URLs). Key parameters should include:
- Vendor/Project, Product, Product Version (?), Platform, OS Version (?), Build ID
- Currently don't use Product or OS Versions with Talkback, but might want to consider doing it with Airbag.
Airbag Digester [need better name]
- Grab blackboxes from Crash/Blackbox Manager
- Process blackboxes
- Extract info from blackbox
- Map stack trace to symbol info from Symbols Store to decipher function names, file paths and line no.
- Store crash information to Airbag Database
Airbag Database
- Pick appropriate database (not Oracle)
- Define schema that works well with current query/reporting needs
- [need to dig up all common queries - jay]
Analysis and Reporting System(s)
- figure out how much of http://talkback-public.mozilla.org/search/start.jsp we can leverage to cover the three main areas of analysis approaches
- tools for looking at large volumes of data and quickly making sense of it.
and http://talkback-public.mozilla.org/reports/firefox/FF2001/smart-analysis.all
- the ability to find an individual report and put them into the context of a larger set of problems.
- find blackbox(s) by incident id, comments, and configuration info, plus e-mail address and other potentially confidential info (for reporting system behind the firewall.)
- the ability to quickly find and isolate when crash regressions appeared in nightly builds or between major releases.
- the ability to find common themes behind crash reports by looking at things like common comments, common configuration characteristics such as OS version, graphics systems, process lists, time since last crash, most frequently visited sites, etc...
- the ability to find an individual report and put them into the context of a larger set of problems.