| # Chrome Network Bug Triage |
| |
| The Chrome network team uses a two day bug triage rotation. The main goals are |
| to identify and label new network bugs, and investigate network bugs when no |
| label seems suitable. |
| |
| ## Responsibilities |
| |
| ### Required, in rough order of priority: |
| * Identify new network bugs on the tracker. |
| * Investigate UMA notifications. |
| * Investigate recent Internals>Network issues with no subcomponent. |
| * Follow up on Needs-Feedback issues for all network components. |
| * Identify and file bugs for significant new crashers. |
| |
| ### Best effort, also in rough priority order: |
| * Investigate unowned and owned-but-forgotten net/ crashers. |
| * Investigate old bugs. |
| * Close obsolete bugs. |
| |
| All of the above is to be done on each rotation. These responsibilities should |
| be tracked, and anything left undone at the end of a rotation should be handed |
| off to the next triager. The downside to passing along bug investigations like |
| this is each new triager has to get back up to speed on bugs the previous |
| triager was investigating. The upside is that triagers don't get stuck |
| investigating issues after their time after their rotation, and it results in a |
| uniform, predictable two day commitment for all triagers. |
| |
| ## Details |
| |
| ### Required: |
| |
| * Identify new network bugs on the bug tracker. All Unconfirmed issues filed |
| during your triage rotation should be scanned, and, for suspected network |
| bugs, a network component assigned and an about:net-internals log requested. |
| A triager is responsible for looking at bugs reported from noon PST / 3:00 pm |
| EST of the last day of the previous triager's rotation until the same time on |
| the last day of their rotation. Once you've assigned a bug to a component, |
| mark it Untriaged, so other triagers sorting through Unconfirmed bugs won't |
| see it. |
| |
| * For desktop bugs, ask for a net-internals log and give the user a link to |
| https://sites.google.com/a/chromium.org/dev/for-testers/providing-network-details |
| (A link there appears on about:net-internals, for easy reference) for |
| instructions. On mobile, point them to about:net-export. In either case, |
| attach the Needs-Feedback label. |
| |
| * Investigate UMA notifications. |
| |
| * UMA notifications ("chirps") are alerts based on UMA histograms that are |
| sent to chrome-network-debugging@google.com. Triagers should subscribe |
| to this list. When an alert fires, the triager should determine if the |
| alert looks to be real and file a bug with the appropriate label if so. |
| Note that if no label more specific than Internals>Network is appropriate, |
| the responsibility remains with the triager to continue investigating the |
| bug, as above. |
| |
| * The triager is responsible for looking at any notification previous |
| triagers did not, so when an issue is investigated, the person who did |
| so should respond to chrome-network-debugging@google.com with a short |
| email, describing their conclusions. Future triagers can then use the |
| fact an alert was responded to as an indicator of which of them need |
| to be followed up on. Alerts fired before the beginning of the |
| previous triager's rotation may be ignored. |
| |
| * Investigate [Unconfirmed / Untriaged Internals>Network issues that don't belong to a more specific network component](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=component%3DInternals%3ENetwork+status%3AUnconfirmed,Untriaged+-label:Needs-Feedback&sort=-modified), |
| prioritizing the most recent issues, ones with the most responsive reporters, |
| and major crashers. This will generally take up the majority of your time as |
| triager. Continue digging until you can do one of the following: |
| |
| * Mark it as *WontFix* (working as intended, obsolete issue) or a |
| duplicate. |
| |
| * Mark it as a feature request. |
| |
| * Mark it as Needs-Feedback. |
| |
| * Remove the Internals>Network component, replacing it with at least one |
| more specific network component or non-network component. Replacing the |
| Internals>Network component gets it off the next triager's radar, and |
| in front of someone more familiar with the relevant code. Note that |
| due to the way the bug report wizard works, a lot of bugs incorrectly end |
| up with the network component. |
| |
| * The issue is assigned to an appropriate owner, and make sure to mark it |
| as "assigned" so the next triager doesn't run into it. |
| |
| * If there is no more specific component for a bug, it should be |
| investigated by the triager until we have a good understanding of the |
| cause of the problem, and some idea how it should be fixed, at which point |
| its status should be set to Available. Future triagers should ignore bugs |
| with this status, unless investigating stale bugs. |
| |
| * Follow up on [Needs-Feedback issues for all components owned by the network stack team](https://bugs.chromium.org/p/chromium/issues/list?q=component%3AInternals%3ENetwork+-component%3AInternals%3ENetwork%3EDataProxy+-component%3AInternals%3ENetwork%3EDataUse+-component%3AInternals%3ENetwork%3EVPN+Needs%3DFeedback&sort=-modified). |
| |
| * Remove label once feedback is provided. Continue to investigate, if |
| the previous section applies. |
| |
| * If the Needs-Feedback label has been present for one week, ping the |
| reporter. |
| |
| * Archive after two weeks with no feedback, telling users to file a new |
| bug if they still have the issue, with the requested information, unless |
| the reporter indicates they'll provide data when they can. In that case, |
| use your own judgment for further pings or archiving. |
| |
| * Identify significant new browser process |
| [crashers](https://goto.google.com/chromecrash) that are potentially network |
| related. You should look at crashes for the most recent canary that has at |
| least a day of data, and if there's been a dev or beta release from the start |
| of the last triager's shift to the start of yours, you should also look at |
| that once it has at least a day of data. Recent releases available |
| [here](https://omahaproxy.appspot.com/). If both dev and beta have been |
| released in that period, just look at beta. File Internals>Network bugs on |
| the tracker when new crashers are found. Bugs should only be filed for |
| crashes that are both in the top 100 for each release and occurred for more |
| than two users. |
| |
| * Make sure to check for new crashes on all platforms, not just Windows. |
| |
| ### Best Effort (As you have time): |
| |
| * Investigate old bugs, and bugs associated with Internals>Network |
| subcomponents. |
| |
| * Investigate unowned and owned but forgotten net/ crashers that are still |
| occurring (As indicated by |
| [go/chromecrash](https://goto.google.com/chromecrash)), prioritizing frequent |
| and long standing crashers. |
| |
| * Close obsolete bugs. |
| |
| See [bug-triage-suggested-workflow.md](bug-triage-suggested-workflow.md) for |
| suggested workflows. |
| |
| See [bug-triage-labels.md](bug-triage-labels.md) for labeling tips for network |
| and non-network bugs. |
| |
| See [crash-course-in-net-internals.md](crash-course-in-net-internals.md) for |
| some help on getting started with about:net-internals debugging. |