ozone: evdev: Sync caps lock LED state to evdev
[chromium-blink-merge.git] / net / docs / bug-triage-suggested-workflow.txt
blobd3e7141dc4be95c16de369aec4f43c27e209cad1
1 Identifying unlabeled network bugs on the tracker:
2 * Look at new uncomfirmed bugs since noon PST on the last triager's rotation:
3     https://code.google.com/p/chromium/issues/list?can=2&q=status%3Aunconfirmed&sort=-id&num=1000
4 * Press "h" to bring up a preview of the bug text.
5 * Use "j" and "k" to advance through bugs.
6 * If a bug looks like it might be network/download/safe-browsing related, middle
7     click [or command-click on OSX] to open in new tab.
8 * If a user provides a crash ID for a crasher for a bug that could be
9     net-related, look at the crash stack at go/crash, and see if it looks to be
10     network related.  Be sure to check if other bug reports have that stack
11     trace, and mark as a dupe if so.  Even if the bug isn't network related,
12     paste the stack trace in the bug, so no one else has to look up the crash
13     stack from the ID.
14   * If there's no other information than the crash ID, ask for more details and
15       add the Needs-Feedback label.
16 * If network causes are possible, ask for a net-internals log (If it's not a
17     browser crash) and attach the most specific internals-network label that's
18     applicable.  If there isn't an applicable narrower label, a clear owner for
19     the issue, or there are multiple possibilities, attach the internals-network
20     label and proceed with further investigation.
21 * If non-network causes also seem possible, attach those labels as well.
23 Investigating Cr-Internals-Network bugs:
24 * It's recommended that while on triage duty, you subscribe to the
25     Cr-Internals-Network label.  To do this, go to
26     https://code.google.com/p/chromium/issues/ and click on "Subscriptions".
27     Enter Cr-Internals-Network and click submit.
28 * Look through uncomfirmed and untriaged Cr-Internals-Network bugs, prioritizing
29     those updated within the last week:
30     https://code.google.com/p/chromium/issues/list?can=2&q=Cr%3DInternals-Network+-status%3AAssigned+-status%3AStarted+-status%3AAvailable+&sort=-modified
31 * While investigating a new issue, change the status to Untriaged.
32 * If a bug is a potential security issue (Allows for code execution from remote
33     site, allows crossing security boundaries, unchecked array bounds, etc) mark
34     it Type-Bug-Security.  If it has privacy implication (History, cookies
35     discoverable by an entity that shouldn't be able to do so, incognito state
36     being saved in memory or on disk beyond the lifetime of incognito tabs,
37     etc), mark it Cr-Privacy.
38 * For bugs that already have a more specific network label, go ahead and remove
39     the Cr-Internals-Network label and move on.
40 * Try to figure out if it's really a network bug.  See common non-network labels
41     section for description of common labels needed for issues incorrectly
42     tagged as Cr-Internals-Network.
43 * If it's not, attach appropriate labels and go no further.
44 * If it may be a network bug, attach additional possibly relevant labels if any,
45     and continue investigating.  Once you either determine it's a non-network
46     bug, or figure out accurate more specific network labels, your job is done,
47     though you should still ask for a net-internals dump if it seems likely to
48     be useful.
49 * Note that ChromeOS-specific network-related code (Captive portal detection,
50     connectivity detection, login, etc) may not all have appropriate more
51     specific labels, but are not in areas handled by the network stack team.
52     Just make sure those have the OS-Chrome label, and any more specific labels
53     if applicable, and then move on.
54 * Gather data and investigate.
55   * Remember to add the Needs-Feedback label whenever waiting for the user to
56       respond with more information, and remove it when not waiting on the user.
57   * Try to reproduce locally.  If you can, and it's a regression, use
58       src/tools/bisect-builds.py to figure out when it regressed.
59   * Ask more data from the user as needed (net-internals dumps, repro case,
60       crash ID from about:crashes, run tests, etc).
61   * If asking for an about:net-internals dump, provide this link:
62       https://sites.google.com/a/chromium.org/dev/for-testers/providing-network-details.
63       Can just grab the link from about:net-internals, as needed.
64 * Try to figure out what's going on, and which more specific network label is
65     most appropriate.
66 * If it's a regression, browse through the git history of relevant files to try
67     and figure out when it regressed.  CC authors / primary reviewers of any
68     strongly suspect CLs.
69 * If you are having trouble with an issue, particularly for help understanding
70     net-internals logs, email the public net-dev@chromium.org list for help
71     debugging.  If it's a crasher, or for some other reason discussion needs to
72     be done in private, use chrome-network-debugging@google.com.
73     TODO(mmenke): Write up a net-internals tips and tricks docs.
74 * If it appears to be a bug in the unowned core of the network stack (i.e. no
75     sublabel applies, or only the Cr-Internals-Network-HTTP sublabel applies,
76     and there's no clear owner), try to figure out the exact cause.
78 Look for new crashers:
79 * Go to go/chromecrash.
80 * For each platform, go to the latest canary.
81 * In the "Process Type" frame, click on "browser".
82 * At the bottom of the "Magic Signature" frame,  click "limit 1000".
83   Reported crashers are sorted in decreasing order of the number of reports for
84   that crash signature.
85 * Search the page for "net::".  Ignore crashes that only occur once, as
86     memory corruption can easily cause one-off failures when the sample size is
87     large enough.
88 * Click on the number of reports field to see details of crash. Look at the
89     stack trace to confirm it's a network bug.
90   * If it is, and there's no associated bug filed, file a new bug directly from
91       chromecrash, looking at earlier canaries to determine if it's a recent
92       regression.  Use the most specific label possible.
93 * The most recent Canary may not yet have a full day of crashes, so it may be
94     worth looking at more than one version.
95 * If there's been a dev, beta, or stable release in the last couple days, should
96     also look at those.
98 Investigating crashers:
99 * Only investigate crashers that are still occurring, as identified by above
100     section.  If a search on go/crash indicates a crasher is no longer
101     occurring, mark it as WontFix.
102 * Particularly for Windows, look for weird dlls associated with the crashes.
103     If there are some, it may be caused by malware.  You can often figure out if
104     a dll is malware by a search, though it's harder to figure out if a dll is
105     definitively not malware.
106 * See if the same users are repeatedly running into the same issue.  This can be
107     accomplished by search for (Or clicking on) the client ID associated with a
108     crash report, and seeing if there are multiple reports for the same crash.
109     If this is the case, it may be also be malware, or an issue with an unusual
110     system/chrome/network config.
111 * Dig through crash reports to figure out when the crash first appeared, and dig
112     through revision history in related files to try and locate a suspect CL.
113     TODO(mmenke):  Add more detail here.
114 * Load crash dumps, try to figure out a cause.
115     See http://www.chromium.org/developers/crash-reports for more information
117 Dealing with old bugs:
118 * For all network issues (Even those with owners, or a more specific labels):
119   * If the issue has had the Needs-Feedback label for over a month, verify it
120       is waiting on feedback from the user.  If not, remove the label.
121       Otherwise, go ahead and mark the issue WontFix due to lack of response and
122       suggest the user file a new bug if the issue is still present.
123       Old Needs-Feedback issues:  https://code.google.com/p/chromium/issues/list?can=2&q=Cr%3AInternals-Network%20Needs=Feedback+modified-before%3Atoday-30&sort=-modified
124   * If a bug is over 2 months old, and the underlying problem was never
125     reproduced or really understood:
126     * If it's over a year old, go ahead and mark the issue as Archived.
127     * Otherwise, ask reporters if the issue is still present, and attach the
128         Needs-Feedback label.
129 * Old unconfirmed or untriaged Cr-Internals-Network issues can be investigated
130     just like newer ones.  Crashers should generally be given higher priority,
131     since we can verify if they still occur, and then newer issues, as they're
132     more likely to still be present, and more likely to have a still responsive
133     bug reporter.