PostCrash
DRAFT
The content of this page is a work in progress intended for review.
Please help improve the draft!
Ask questions or make suggestions in the discussion
or add your suggestions directly to this page.
The goal of this project is to improve the user post-crash experience by:
- Developing about:crashes into a more useful resource
- Contacting the user by email after a crash is resolved
The project will require changes to about:crashes, SUMO, and Socorro in order to supply the required functionality.
about:crashes
We want to make about:crashes more useful. Ideally, for each crash we would display:
- the crash id
- the crash signature (source: Socorro)
- associated bugzilla ids (source: Socorro) and status of these bugs (source: Bugzilla or Socorro)
- if s crash is associated with a plugin, link to plugincheck (source: Socorro)
- If a canonical SUMO article exists, a link to that article, otherwise a link to SUMO search for that signature (as is currently done in Socorro)
The client should obtain the extra information from Socorro and SUMO via XHR. This data should be stored locally once final. Final data includes:
- crash signature
- bugzilla ids for RESOLVED bugs
- plugin association
- canonical SUMO links
Data that should be polled each time about:crashes is loaded includes:
- Status of bugzilla bugs that were unresolved last time about:crashes was loaded
- Search for a canonical SUMO article where one previously didn't exist
In order to minimize load on Socorro and SUMO, we may only show this information for the last n crashes (where n is a smallish number, yet to be determined, perhaps even 1). We could display a link to "check crash status" on each previous crash.
Changes to SUMO
- Add a table that stores links between articles and signatures. The relationship may be m:n but is definitely 1:n.
- Add a webservice call that searches for a canonical article and returns it if it exists.
- Make the search accept OR searches, e.g. "crash_signature OR crashes", to ensure that generic crash support is shown even if there are no articles or forum threads mentioning the crash_signature.
- Alternatively, make the webservice call above "clever", e.g.:
- If canonical article exists for crash_signature, link directly to it
- Else If search results exists for crash_signature, show search results
- Else, link directly to generic crash article
- Alternatively, make the webservice call above "clever", e.g.:
Changes to Socorro
- Add a webservice call. Given crash id, return signature, associated plugin, associated bugzilla id and bug status.
User email contact
This requires changes to Socorro.
Periodically, we should run a job that does the following:
- For each crash with a supplied user email address
- Check the status of associated bugs
- If an associated bug is resolved, queue an email to the user with the date of the crash, a link to the bug, and information about the version of the product in which this bug was resolved.
Questions
- Some crashes have more than one associated bug. Should we email the user each time a bug is fixed or when all the bugs are fixed (or some other model)?
- the period of when bugs get fixed to when the crash happens might be very long. bugs being fixed on the trunk now might not be available in a final release until end of q3 or q4. It doesn't make much sense to e-mail users now about fixes that won't appear in a final firefox 4.0 until then, or e-mail them at the end of the year about that that crash they had 6 months ago. A single signature with many bugs makes it nearly impossible to correlate if any one of the bugs might have fixed the specific bug that the user just crashed on. we would need to start storing the full stack trace(s) of the bugs that we have fixed and map them to the full stack trace that the user experienced. -chofmann
- What volume of users supply emails? (Check: For each of the topcrashers, how many associated user emails do we have?) The architecture of the solution for sending email depends on the volume.
- Also depend on what events we send e-mails for. (see below: expect to send about 12k e-mails per day for just incoming reports where we are auto responding when a user sends us an e-mail address, and around 5k per day if we e-mail when there is a bug on file associated with the signature) -chofmann
- Do repeated crashes mean repeated e-mails to the users with the same message, or do we track so that we don't keep telling users there is no fix for their crash yet? if we don't track it the e-mails start to look like spam. --chofmann
- we could be over engineering things here. the system that we had with talkback served a good purpose. when we found a specific crash that we had something specific to tell users about, we constructed the message, then we queued up the system to watch for that signature and send the message. This was for a very small number of the total overall crashes, but had useful information as opposed to just auto-responding. e.g.
"from your recent crash we detected that you need to upgrade to Skype X.X to fix the crash."
At any particular point in time we might have something this specific to say in an extremely low pct. of cases. Numbers below indicate this might be lower than 1% of the time a user reports a crash to us.
- sending e-mails with technical instructions on how to fix or mitigate crashes, and espcially instructions that involve downloading and installing software is open to impersonation, and phishing. we need build in ways for users to authenticate that the message came from mozilla and that the same instructions are available on an "offical" mozilla hosted website.
some numbers
14k -count of reports that have e-mail address, 378k -total crashes per day, 3.6% -ratio of e-mails to total crashes 5k -signature has e-mail and an assigned bug 1% -ratio of signatures with emails and assigned bugs to total crashes 35% -ratio of reports with e-mails to reports e-mails with bugs. email& email& date email=yes #crash email/crash bugs bugs/tl email/email&bug 20100530-crashdata.csv 12596 341229 0.03691 4319 0.0126572 0.342887 20100531-crashdata.csv 13567 372037 0.03646 4784 0.0128589 0.35262 20100601-crashdata.csv 13941 378282 0.03685 5053 0.0133578 0.362456 20100602-crashdata.csv 13806 379287 0.03639 4793 0.0126369 0.347168 20100603-crashdata.csv 12353 332924 0.03710 3855 0.0115792 0.31207 -chofmann