Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Chrome Network Bug Triage : Suggested Workflow | |
| 2 | |
| 3 ## Look for new crashers: | |
| 4 | |
| 5 * Go to [go/chromecrash](https://goto.google.com/chromecrash). | |
| 6 * For each platform, look through the releases for which releases to | |
| 7 investigate. As per bug-triage.txt, this should be the most recent canary, | |
| 8 the previous canary (if the most recent is less than a day old), and any of | |
| 9 dev/beta/stable that were released in the last couple of days. | |
| 10 * For each release, in the "Process Type" frame, click on "browser". | |
| 11 * At the bottom of the "Magic Signature" frame, click "limit 1000". Reported | |
| 12 crashers are sorted in decreasing order of the number of reports for that | |
| 13 crash signature. | |
| 14 * Search the page for `net::`. | |
| 15 * For each found signature: | |
| 16 * If there is a bug already filed, make sure it is correctly describing the | |
| 17 current bug (e.g. not closed, or not describing a long-past issue), and | |
| 18 make sure that if it is a `net::` bug, that it is labeled as such. | |
| 19 * Ignore signatures that only occur once, as memory corruption can easily | |
| 20 cause one-off failures when the sample size is large enough. | |
| 21 * Ignore signatures that only come from a single client ID, as individual | |
| 22 machine malware and breakage can also easily cause one-off failures. | |
| 23 * Click on the number of reports field to see details of crash. Ignore it if | |
| 24 it doesn't appear to be a network bug. | |
| 25 * Otherwise, file a new bug directly from chromecrash. Note that this may | |
| 26 result in filing bugs for low- and very-low- frequency crashes. That's ok; | |
| 27 the bug tracker is a better tool to figure out whether or not we put | |
| 28 resources into those crashes than a snap judgement when filing bugs. | |
| 29 * For each bug you file, include the following information: | |
| 30 * The backtrace. Note that the backtrace should not be added to the bug if | |
|
Randy Smith (Not in Mondays)
2015/03/17 19:49:57
The attempt to indent fails here and works below s
asanka
2015/03/17 22:23:13
Fixed.
| |
| 31 `Restrict-View-Google` isn't set on the bug as it may contain PII. Filing | |
| 32 the bug from the crash reporter should do this automatically, but check. | |
| 33 * The channel in which the bug is seen (canary/dev/beta/stable), its | |
| 34 frequency in that channel, and its rank among crashers in the channel. | |
| 35 * The frequency of this signature in recent releases. This information is | |
| 36 available by: | |
| 37 * Clicking on the signature in the "Magic Signature" list | |
| 38 * Clicking "Edit" on the dremel query at the top of the page | |
| 39 * Removing the `product.version='X.Y.Z.W' AND` string and clicking | |
| 40 "Update". | |
| 41 * Clicking "Limit 1000" in the Product Version list in the resulting page | |
| 42 (without this, the listing will be restricted to the releases in which | |
| 43 the signature is most common, which will often not include the canary/dev | |
| 44 release being investigated). | |
| 45 * Choose some subset of that list, or all of it, to include in the bug. | |
| 46 Make sure to indicate if there is a defined point in the past before | |
| 47 which the signature is not present. | |
| 48 | |
| 49 ## Identifying unlabeled network bugs on the tracker: | |
| 50 | |
| 51 * Look at new uncomfirmed bugs since noon PST on the last triager's rotation: | |
| 52 | |
| 53 https://code.google.com/p/chromium/issues/list?can=2&q=status%3Aunconfirmed& sort=-id&num=1000 | |
|
Randy Smith (Not in Mondays)
2015/03/17 19:49:57
For HTML readability, you might not want to have t
asanka
2015/03/17 22:23:13
Added a description. Let me know if we should desc
| |
| 54 | |
| 55 * Press `h` to bring up a preview of the bug text. | |
|
Randy Smith (Not in Mondays)
2015/03/17 19:49:57
There's a big gap after this in the HTML, for some
asanka
2015/03/17 22:23:13
Yeah. It was because of the formatting for the lin
| |
| 56 * Use `j` and `k` to advance through bugs. | |
| 57 * If a bug looks like it might be network/download/safe-browsing related, | |
| 58 middle click (or command-click on OSX) to open in new tab. | |
| 59 * If a user provides a crash ID for a crasher for a bug that could be | |
| 60 net-related, look at the crash stack at go/crash, and see if it looks to be | |
| 61 network related. Be sure to check if other bug reports have that stack | |
| 62 trace, and mark as a dupe if so. Even if the bug isn't network related, | |
| 63 paste the stack trace in the bug, so no one else has to look up the crash | |
| 64 stack from the ID. | |
| 65 * If there's no other information than the crash ID, ask for more details and | |
| 66 add the Needs-Feedback label. | |
| 67 * If network causes are possible, ask for a net-internals log (If it's not a | |
| 68 browser crash) and attach the most specific internals-network label that's | |
| 69 applicable. If there isn't an applicable narrower label, a clear owner for | |
| 70 the issue, or there are multiple possibilities, attach the internals-network | |
| 71 label and proceed with further investigation. | |
| 72 * If non-network causes also seem possible, attach those labels as well. | |
| 73 | |
| 74 ## Investigating `Cr-Internals-Network` bugs: | |
| 75 | |
| 76 * It's recommended that while on triage duty, you subscribe to the | |
| 77 `Cr-Internals-Network` label. To do this, go to | |
| 78 https://code.google.com/p/chromium/issues/ and click on "Subscriptions". | |
| 79 Enter `Cr-Internals-Network` and click submit. | |
| 80 * Look through uncomfirmed and untriaged `Cr-Internals-Network` bugs, | |
| 81 prioritizing those updated within the last week: | |
| 82 https://code.google.com/p/chromium/issues/list?can=2&q=Cr%3DInternals-Network+ -status%3AAssigned+-status%3AStarted+-status%3AAvailable+&sort=-modified | |
|
Randy Smith (Not in Mondays)
2015/03/17 19:49:57
Same comment; for the HTML, I'd put these into lin
asanka
2015/03/17 22:23:13
Done.
| |
| 83 * If more information is needed from the reporter, ask for it and add the | |
| 84 `Needs-Feedback` label. If the reporter has answered an earlier request for | |
| 85 information, remove that label. | |
| 86 * While investigating a new issue, change the status to `Untriaged`. | |
| 87 * If a bug is a potential security issue (Allows for code execution from remote | |
| 88 site, allows crossing security boundaries, unchecked array bounds, etc) mark | |
| 89 it `Type-Bug-Security`. If it has privacy implication (History, cookies | |
| 90 discoverable by an entity that shouldn't be able to do so, incognito state | |
| 91 being saved in memory or on disk beyond the lifetime of incognito tabs, etc), | |
| 92 mark it `Cr-Privacy`. | |
| 93 * For bugs that already have a more specific network label, go ahead and remove | |
| 94 the `Cr-Internals-Network` label and move on. | |
| 95 * Try to figure out if it's really a network bug. See common non-network | |
| 96 labels section for description of common labels needed for issues incorrectly | |
| 97 tagged as `Cr-Internals-Network`. | |
| 98 * If it's not, attach appropriate labels and go no further. | |
| 99 * If it may be a network bug, attach additional possibly relevant labels if | |
| 100 any, and continue investigating. Once you either determine it's a | |
| 101 non-network bug, or figure out accurate more specific network labels, your | |
| 102 job is done, though you should still ask for a net-internals dump if it seems | |
| 103 likely to be useful. | |
| 104 * Note that ChromeOS-specific network-related code (Captive portal detection, | |
| 105 connectivity detection, login, etc) may not all have appropriate more | |
| 106 specific labels, but are not in areas handled by the network stack team. | |
| 107 Just make sure those have the OS-Chrome label, and any more specific labels | |
| 108 if applicable, and then move on. | |
| 109 * Gather data and investigate. | |
| 110 * Remember to add the Needs-Feedback label whenever waiting for the user to | |
| 111 respond with more information, and remove it when not waiting on the user. | |
| 112 * Try to reproduce locally. If you can, and it's a regression, use | |
| 113 `src/tools/bisect-builds.py` to figure out when it regressed. | |
| 114 * Ask more data from the user as needed (net-internals dumps, repro case, | |
| 115 crash ID from `about:crashes`, run tests, etc). | |
| 116 * If asking for an `about:net-internals` dump, provide this link: | |
| 117 https://sites.google.com/a/chromium.org/dev/for-testers/providing-network-de tails. | |
|
Randy Smith (Not in Mondays)
2015/03/17 19:49:57
Same comment; -> link.
asanka
2015/03/17 22:23:13
Done.
| |
| 118 Can just grab the link from about:net-internals, as needed. | |
| 119 * Try to figure out what's going on, and which more specific network label is | |
| 120 most appropriate. | |
| 121 * If it's a regression, browse through the git history of relevant files to try | |
| 122 and figure out when it regressed. CC authors / primary reviewers of any | |
| 123 strongly suspect CLs. | |
| 124 * If you are having trouble with an issue, particularly for help understanding | |
| 125 net-internals logs, email the public net-dev@chromium.org list for help | |
| 126 debugging. If it's a crasher, or for some other reason discussion needs to | |
| 127 be done in private, use `chrome-network-debugging@google.com`. TODO(mmenke): | |
| 128 Write up a net-internals tips and tricks docs. | |
| 129 * If it appears to be a bug in the unowned core of the network stack (i.e. no | |
| 130 sublabel applies, or only the `Cr-Internals-Network-HTTP` sublabel applies, | |
| 131 and there's no clear owner), try to figure out the exact cause. | |
| 132 | |
| 133 ## Monitor UMA histograms and gasper alerts: | |
| 134 | |
| 135 For each Gasper alert that fires, determine if it's a real alert and file a bug | |
| 136 if so. | |
| 137 | |
| 138 * Don't file if the alert is coincident with a major volume change. The volume | |
| 139 at a particular date can be determined by hovering the mouse over the | |
| 140 appropriate location on the alert line. | |
| 141 * Don't file if the alert is on a graph with very low volume (< ~200 data | |
| 142 points); it's probably noise, and we probably don't care even if it isn't. | |
| 143 * Don't file if the graph is really noisy (but eyeball it to decide if there is | |
| 144 an underlying important shift under the noise). | |
| 145 * Don't file if the alert is in the "Known Ignorable" list: | |
| 146 * SimpleCache on Windows | |
| 147 * DiskCache on Android. For each Gasper alert, respond to | |
| 148 `chrome-network-debugging@` with a summary of the action you've taken and | |
| 149 why, including issue link if an issue was filed. | |
| 150 | |
| 151 ## Investigating crashers: | |
| 152 | |
| 153 * Only investigate crashers that are still occurring, as identified by above | |
| 154 section. If a search on go/crash indicates a crasher is no longer occurring, | |
| 155 mark it as WontFix. | |
| 156 * Particularly for Windows, look for weird dlls associated with the crashes. | |
| 157 If there are some, it may be caused by malware. You can often figure out if | |
| 158 a dll is malware by a search, though it's harder to figure out if a dll is | |
| 159 definitively not malware. | |
| 160 * See if the same users are repeatedly running into the same issue. This can | |
| 161 be accomplished by search for (Or clicking on) the client ID associated with | |
| 162 a crash report, and seeing if there are multiple reports for the same crash. | |
| 163 If this is the case, it may be also be malware, or an issue with an unusual | |
| 164 system/chrome/network config. | |
| 165 * Dig through crash reports to figure out when the crash first appeared, and | |
| 166 dig through revision history in related files to try and locate a suspect CL. | |
| 167 TODO(mmenke): Add more detail here. | |
| 168 * Load crash dumps, try to figure out a cause. See | |
| 169 http://www.chromium.org/developers/crash-reports for more information | |
| 170 | |
| 171 ## Dealing with old bugs: | |
| 172 | |
| 173 * For all network issues (Even those with owners, or a more specific labels): | |
| 174 * If the issue has had the Needs-Feedback label for over a month, verify it | |
| 175 is waiting on feedback from the user. If not, remove the label. | |
| 176 Otherwise, go ahead and mark the issue WontFix due to lack of response and | |
| 177 suggest the user file a new bug if the issue is still present. Old | |
| 178 `Needs-Feedback` issues: | |
| 179 https://code.google.com/p/chromium/issues/list?can=2&q=Cr%3AInternals-Networ k%20Needs=Feedback+modified-before%3Atoday-30&sort=-modified | |
| 180 * If a bug is over 2 months old, and the underlying problem was never | |
| 181 reproduced or really understood: | |
| 182 * If it's over a year old, go ahead and mark the issue as Archived. | |
| 183 * Otherwise, ask reporters if the issue is still present, and attach the | |
| 184 Needs-Feedback label. | |
| 185 * Old unconfirmed or untriaged `Cr-Internals-Network` issues can be | |
| 186 investigated just like newer ones. Crashers should generally be given higher | |
| 187 priority, since we can verify if they still occur, and then newer issues, as | |
| 188 they're more likely to still be present, and more likely to have a still | |
| 189 responsive bug reporter. | |
| OLD | NEW |