Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Side by Side Diff: net/docs/bug-triage-suggested-workflow.md

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

Powered by Google App Engine
This is Rietveld 408576698