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 |