searching_crash_reports.rst (11722B)
1 A guide to searching crash reports 2 ================================== 3 4 .. note:: 5 6 Please read the :ref:`documentation about individual crash 7 reports <Understanding crash reports>` before reading 8 this page. 9 10 The Mozilla `crash-stats <https://crash-stats.mozilla.org/>`__ site 11 provides facilities for investigating large numbers of Firefox `crash 12 reports <Understanding crash reports>`__. This guide to 13 searching through crash reports may help you locate the crash reports 14 that will help you find and fix the Firefox bug you're working on. 15 16 Specifically, crash-stats offers two basic functions: 17 18 Searching 19 You can search the crash reports database by over 100 criteria: crash 20 signature, date, platform, product, version, etc. 21 Grouping 22 You can cluster the results of each search into groups using the same 23 criteria. 24 25 To achieve full power and flexibility requires a good understanding of 26 both of these functions. Search is easy to understand, but the grouping 27 capabilities are easy to overlook. 28 29 Searching 30 --------- 31 32 The search form 33 ~~~~~~~~~~~~~~~ 34 35 You can get to the `search 36 page <https://crash-stats.mozilla.org/search/?product=Firefox&_dont_run=1>`__ 37 by clicking on the "Super Search" link near the toolbar at the top right 38 of any page in crash-stats. This brings up a search form like the one in 39 the following screenshot. 40 41 |Search in crash-stats| 42 43 Fields are provided for four common search criteria: product, version, 44 platform, and process type. The product field is pre-populated with 45 "Firefox" because that is a common case. As the fine print says, the 46 default date range is the past week. 47 48 The default search: Signature facet 49 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 50 51 If you click on the "Search" button, you will get 52 `results <https://crash-stats.mozilla.org/search/?product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature>`__ 53 like the ones in the following screenshot. 54 55 |Results of a default search in crash-stats| 56 57 By default, the "Signature facet" tab is selected. ("Facet" is a term 58 that means "group".) In these results, the found crash reports are 59 grouped according to crash signature and ranked by group size. The 60 columns show each group's rank, signature, size (both a count and a 61 proportion of matching crash reports), and finally a list of bugs that 62 have been marked as relating to this signature. 63 64 The numbers are large because this search matched all Firefox crash 65 reports from the past seven days. The first group has over 100,000 crash 66 reports, which accounts for 7.77% of all matching crashes. This 67 indicates there are over 1.3 million crash reports matching this search. 68 69 You can reorder the groups in various ways by clicking on the column 70 headers. The links within the results do the following things. 71 72 - The first link in each "Signature" column cell links to a signature 73 report, which contains additional details about crash reports with 74 that signature. 75 - The "Add term" link in each "Signature" column cell lets you perform 76 a narrower subsequent search among crash reports with that signature. 77 - The links in each "Bugs" column cell link to bug reports in Bugzilla. 78 79 The default search: Crash reports 80 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 82 If you switch to the "Crash Reports" tab you will see 83 `results <https://crash-stats.mozilla.org/search/?product=Firefox&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#crash-reports>`__ 84 like the ones in the following screenshot. 85 86 |Results of a default search in crash-stats (crash reports tab)| 87 88 This is a list of all the individual crash reports that match the search 89 criteria. If the number of matches is large -- in this case it exceeds 90 1.3 million, just as we saw in the "Signature facet" tab -- the results 91 will be spread across multiple pages, which you can visit by clicking 92 the links at the top right of the tab. 93 94 The links within the results do the following things. 95 96 - The link in each "Crash ID" column cell links to an individual crash 97 report. 98 - The links in each "Signature" column cell have the same effect that 99 they did in the "Signature facet" tab. 100 - The links in the remaining column cells also let you perform a 101 narrower subsequent search with that link's value added to the search 102 criteria. 103 104 A narrower search 105 ~~~~~~~~~~~~~~~~~ 106 107 You can add criteria to perform a narrower search. For example, to 108 perform a search for all Mac crash reports that occurred while 109 JavaScript garbage collection was running, do the following. 110 111 - Add "Mac OS X" to the "Platform" field. 112 - Select "New line", and then choose a field ("is garbage collecting") 113 and an operator ("is true"). The operators available for each field 114 depends on its type. 115 116 With these criteria added the search form looks like the following 117 screenshot. 118 119 |crash-stats Super Search form with additional criteria| 120 121 After clicking on "Search" we get 122 `results <https://crash-stats.mozilla.org/search/?is_garbage_collecting=__true__&product=Firefox&platform=Mac%20OS%20X&_sort=-date&_facets=signature&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform>`__ 123 like those in the following screenshot. 124 125 |Results of a narrower search in crash-stats| 126 127 The number of crash reports matching this search is in the thousands, 128 i.e. much smaller than the previous search. 129 130 Proto signature 131 ~~~~~~~~~~~~~~~ 132 133 The "proto signature" field is just the raw unprocessed crash stack 134 concatenated together. 135 136 You can do things like: 137 138 - Search for crashes where the signature is Foo, and the proto 139 signature contains Bar. This is helpful if you have a fairly generic 140 signature and you want to see how many of them are a particular case 141 of it that you've come across. Or instead of a signature Foo, a moz 142 crash reason or something else. 143 - Use it as a facet. This lets you skim the full signatures of crashes 144 at a glance, bucketed together a bit. Note that because the proto 145 signature includes the entire signature, things aren't grouped all 146 that well. 147 148 Grouping 149 -------- 150 151 In the previous section we saw one example of grouping, in the 152 "Signature facet" tab that is shown by default. But there are many other 153 interesting ways to group searches. 154 155 Facets in the search form 156 ~~~~~~~~~~~~~~~~~~~~~~~~~ 157 158 To do a search with non-signature grouping first click on the "More 159 options..." text, which reveals the additional fields shown in the 160 following screenshot. 161 162 |crash-stats Super Search form with different facets| 163 164 (The "Show columns" and "Sort by" fields are straightforward. They apply 165 to the "Crash reports" tab of any search results, and are not related to 166 grouping.) 167 168 The "Facet on" field is the one that controls grouping. By default, it 169 contains the value "signature", which explains why we saw a "Signature 170 facet" tab in the earlier search results. But we can change the values 171 in this field and get different facet tabs in the search results. 172 173 Grouping by platform 174 ~~~~~~~~~~~~~~~~~~~~ 175 176 For example, if we start with a default search for all Firefox crashes 177 in the past week, but then replace the "signature" facet with "platform" 178 and "moz crash reason", we get search results with two facet tabs. The 179 first of these is a "Platform facet" tab, with 180 `results <https://crash-stats.mozilla.org/search/?product=Firefox&_sort=-date&_facets=platform&_facets=moz_crash_reason&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-platform>`__ 181 like those shown in the following screenshot. 182 183 |Results of a faceted search in crash-stats| 184 185 This has the same columns as the "Signature facet" tab we saw earlier, 186 except for the "Bugs" column, because that is a special column that only 187 applies to the signature facet. This tab shows the distribution of crash 188 reports across the various platforms. Crash reports always include a 189 platform field (though it may be empty if something has gone wrong) and 190 so the percentages add up to 100. 191 192 Grouping by "moz crash reason" 193 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 195 The second facet tab is a "Moz crash reason facet" tab, with 196 `results <https://crash-stats.mozilla.org/search/?product=Firefox&_sort=-date&_facets=platform&_facets=moz_crash_reason&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-moz_crash_reason>`__ 197 like those shown in the following screenshot. 198 199 |Results of a faceted search in crash-stats (moz crash reason tab)| 200 201 This immediately shows which ``MOZ_CRASH`` calls are being hit 202 frequently by users. Only a subset of crash reports have the "moz crash 203 reason" field -- those that crashed due to hitting a ``MOZ_CRASH`` call 204 -- so all crashes that lack that field are omitted from this tab. For 205 that reason, the percentages do not add up to 100. 206 207 An example of less useful grouping 208 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 210 The usefulness of grouping varies from field to field. In particular, 211 fields that can have many possible values (such as numeric fields) often 212 don't group well. For example, if we do a default search grouped by 213 uptime we get 214 `results <https://crash-stats.mozilla.org/search/?product=Firefox&_sort=-date&_facets=uptime&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-uptime>`__ 215 like those in the following screenshot. 216 217 |Results of a faceted search in crash-stats (uptime)| 218 219 In this example the top 10 groups account for less than 12% of all 220 crashes, and there is an extremely long tail. These results would be 221 improved by using numeric ranges instead of individual values, but 222 unfortunately that isn't supported. 223 224 Advanced Usage 225 -------------- 226 227 The combination of searching and grouping is powerful. Searches find 228 crash reports that match particular criteria, and grouping organizes 229 those crash reports into interesting groups. 230 231 When a search is performed, the page's URL is updated to include the 232 search parameters. This means that the results of any search can be 233 easily shared by copying and pasting the page's URL. 234 235 To become an expert at searching and grouping requires understanding the 236 full range of the 100+ fields available for searching and grouping. One 237 way to learn about them is to read lots of individual crash reports; 238 note that all fields shown in the Details tab of an individual crash 239 report have a tool-tip that indicates its key for search. Alternatively, 240 you can browse the `complete 241 list <https://crash-stats.mozilla.org/documentation/supersearch/api/#section-filters>`__. 242 243 There is also an API through which searches can be performed 244 programmatically. See the `API 245 documentation <https://crash-stats.mozilla.org/documentation/supersearch/>`__ 246 for full details; note that it uses the term "aggregation" for 247 grouping/faceting. 248 249 .. |Search in crash-stats| image:: img/super-search-form.png 250 .. |Results of a default search in crash-stats| image:: img/default-search-results.png 251 .. |Results of a default search in crash-stats (crash reports tab)| image:: img/default-search-results2.png 252 .. |crash-stats Super Search form with additional criteria| image:: img/super-search-form2.png 253 .. |Results of a narrower search in crash-stats| image:: img/narrower-search-results.png 254 .. |crash-stats Super Search form with different facets| image:: img/super-search-form3.png 255 .. |Results of a faceted search in crash-stats| image:: img/facet-search-results.png 256 .. |Results of a faceted search in crash-stats (moz crash reason tab)| image:: img/facet-search-results2.png 257 .. |Results of a faceted search in crash-stats (uptime)| image:: img/facet-search-results3.png