xref: /aosp_15_r20/external/cronet/net/docs/bug-triage.md (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1# Chrome Network Bug Triage
2
3The Chrome network team uses a two day bug triage rotation. The goal is to
4review outstanding issues and keep things moving forward. The rotation is time
5based rather than objective based. Sheriffs are expected to spend the majority
6of their two days working on bug triage/investigation.
7
8## 1. Review untriaged bugs
9
10Look through [this list of untriaged
11bugs](https://bugs.chromium.org/p/chromium/issues/list?sort=pri%20-stars%20-opened&q=status%3Aunconfirmed%2Cuntriaged%20-Needs%3DFeedback%20-Label%3ANetwork-Triaged%20-has%3ANextAction%20component%3DInternals%3ENetwork%3EReportingAndNEL%2CInternals%3ENetwork%3ECache%3ESimple%2CInternals%3ENetwork%2CInternals%3ENetwork%3ECache%2CInternals%3ENetwork%3ESSL%2CInternals%3ENetwork%3EQUIC%2CInternals%3ENetwork%3EAuth%2CInternals%3ENetwork%3EHTTP2%2CInternals%3ENetwork%3EProxy%2CInternals%3ENetwork%3ELogging%2CInternals%3ENetwork%3EConnectivity%2CInternals%3ENetwork%3EDomainSecurityPolicy%2CInternals%3ENetwork%3EFTP%2CInternals%3ENetwork%3EDNS).
12
13The goal is for this query to be empty. Bugs can be removed from the triage queue
14by doing any of the following:
15
16* Changing the bug status - marking the bug Available, or closing it.
17* Removing the `Internals>Network` component or subcomponent.
18* Adding the label `Network-Triaged` (when there are multiple components).
19
20For each bug try to:
21
22* Remove the `Internals>Network` component or subcomponent if it belongs
23  elsewhere
24* Dupe it against an existing bug
25* Close it as `WontFix`.
26* Give the bug a priority. Refer to [this document for guidelines](https://docs.google.com/document/d/1JOtp1LS7suqTjMuv41jQFc7aCTR33zJKPoGjKpvVFCA)
27* If the bug is a potential security issue (Allows for code execution from remote
28  site, allows crossing security boundaries, unchecked array bounds, etc) mark
29  it `Type-Bug-Security`.
30* If the bug has privacy implications mark it with component `Privacy`.
31* Set the type to `Task` or `Feature` when it is not a bug.
32* Pay extra attention to possible regressions. Ask the reporter to narrow down using
33  [bisect-builds-py](https://www.chromium.org/developers/bisect-builds-py). To
34  view suspicious changelists in a regression window, you can use the Change Log
35  form on [OmahaProxy](https://omahaproxy.appspot.com/)
36* CC others who may be able to help
37* Mark it as `Needs-Feedback` and request more information if needed.
38* In cases where the bug has multiple components, but primary ownership falls
39  outside of networking, further network triage may not be possible. In those
40  cases, if possible remove the networking component. Otherwise, add the
41  `Network-Triaged` label to the bug, and add a comment explaining which team
42  should triage further. Adding the `Network-Triaged` serves to filter the
43  bug from our untriaged bug list.
44* Avoid spending time deep-diving into ambiguous issues when you suspect it is
45  an out of scope server or network problem, and is not clearly high priority
46  (for instance, it affects only 1 user and is not a regression).
47  Instead:
48  * Mark the bug as `Available` with Priority 3.
49  * Add the `Needs-Feedback` label
50  * Add a comment thanking the reporter, but explaining the issue is ambiguous
51    and they need to do the debugging to demonstrate it is an actual Chrome bug.
52    * Point them to `chrome://net-export` and the
53      [NetLog Viewer](https://netlog-viewer.appspot.com/).
54    * Ask them to confirm whether it is a Chromium regression. (Regressions are
55      treated as high priority)
56* Request a NetLog that captures the problem. You can paste this on the bug:
57  ```
58  Please collect and attach a chrome://net-export log.
59  Instructions can be found here:
60  https://chromium.org/for-testers/providing-network-details
61  ```
62* If a NetLog was provided, try to spend a bit of time reviewing it. See
63  [crash-course-in-net-internals.md](crash-course-in-net-internals.md) for an
64  introduction.
65* Move to a subcomponent of `Internals>Network` if appropriate. See
66  [bug-triage-labels.md](bug-triage-labels.md) for an overview of the components.
67* If the bug is a crash, see [internal: Dealing with a crash
68  ID](https://goto.google.com/network_triage_internal#dealing-with-a-crash-id)
69and [internal: Investigating
70crashers](https://goto.google.com/network_triage_internal#investigating-crashers)
71
72## 2. Follow-up on issues with the Needs-Feedback label
73
74Look through [this list of Needs=Feedback
75bugs](https://bugs.chromium.org/p/chromium/issues/list?sort=-modified%20-modified&q=Needs%3DFeedback%20component%3DInternals%3ENetwork%3EReportingAndNEL%2CInternals%3ENetwork%3ECache%3ESimple%2CInternals%3ENetwork%2CInternals%3ENetwork%3ECache%2CInternals%3ENetwork%3ESSL%2CInternals%3ENetwork%3EQUIC%2CInternals%3ENetwork%3EAuth%2CInternals%3ENetwork%3EHTTP2%2CInternals%3ENetwork%3EProxy%2CInternals%3ENetwork%3ELogging%2CInternals%3ENetwork%3EConnectivity%2CInternals%3ENetwork%3EDomainSecurityPolicy%2CInternals%3ENetwork%3EFTP%2CInternals%3ENetwork%3EDNS).
76
77* If the requested feedback was provided, review the new information and repeat
78  the same steps as (1) to re-triage based on the new information.
79* If the bug had the `Needs-Feedback` label for over 30 days, and the
80  feedback needed to make progress was not yet provided, archive the bug.
81
82## 3. Ensure P0 and P1 bugs have an owner
83
84Look through [the list of unowned high priority
85bugs](https://bugs.chromium.org/p/chromium/issues/list?sort=pri%20-stars%20-opened&q=Pri%3A0%2C1%20-has%3Aowner%20-label%3ANetwork-Triaged%20component%3DInternals%3ENetwork%3EReportingAndNEL%2CInternals%3ENetwork%3ECache%3ESimple%2CInternals%3ENetwork%2CInternals%3ENetwork%3ECache%2CInternals%3ENetwork%3ESSL%2CInternals%3ENetwork%3EQUIC%2CInternals%3ENetwork%3EAuth%2CInternals%3ENetwork%3EHTTP2%2CInternals%3ENetwork%3EProxy%2CInternals%3ENetwork%3ELogging%2CInternals%3ENetwork%3EConnectivity%2CInternals%3ENetwork%3EDomainSecurityPolicy%2CInternals%3ENetwork%3EFTP%2CInternals%3ENetwork%3EDNS).
86These bugs should either have an owner, or be downgraded to a lower priority.
87
88## 4. (Optional) Look through crash reports
89
90Top crashes will already be entered into the bug system by a different process,
91so will be handled by the triage steps above.
92
93However if you have time to look through lower threshold crashes, see
94[internal: Looking for new crashers](https://goto.google.com/network_triage_internal#looking-for-new-crashers)
95
96## 5. Send out a sheriff report
97
98On the final day of your rotation, send a brief summary to [email protected]
99detailing any interesting or concerning trends. Do not discuss any restricted
100bugs on the public mailing list.
101
102## Covered bug components
103
104Not all of the subcomponents of `Interals>Network` are handled by this rotation.
105
106The ones that are included are:
107
108```
109Internals>Network
110Internals>Network>Auth
111Internals>Network>Cache
112Internals>Network>Cache>Simple
113Internals>Network>DNS
114Internals>Network>Connectivity
115Internals>Network>DomainSecurityPolicy
116Internals>Network>FTP
117Internals>Network>HTTP2
118Internals>Network>Logging
119Internals>Network>Proxy
120Internals>Network>QUIC
121Internals>Network>ReportingAndNEL
122Internals>Network>SSL
123```
124
125The rest of the `Internals>Network` subcomponents are out of scope,
126and covered by separate rotations:
127
128```
129Internals>Network>Certificate
130Internals>Network>CertTrans
131Internals>Network>Cookies
132Internals>Network>DataProxy
133Internals>Network>DataUse
134Internals>Network>DoH
135Internals>Network>EV
136Internals>Network>Library
137Internals>Network>NetInfo
138Internals>Network>NetworkQuality
139Internals>Network>TrustTokens
140Internals>Network>VPN
141```
142
143## Management
144
145* Your rotation will appear in Google Calendar for three days, as a full day
146  event. However you should work on it during normal business hours only.
147  The bug triage work should be considered P1 during this period, but you
148  should feel free to work on project work once you triage outstanding issues.
149
150* Google Calendar [c_c76b86b0356db19c1e06879b16d84a2fb7b9747f066b671c46875261c9e7f17a@group.calendar.google.com](https://calendar.google.com/calendar/embed?src=c_c76b86b0356db19c1e06879b16d84a2fb7b9747f066b671c46875261c9e7f17a%40group.calendar.google.com&ctz=Asia%2FTokyo)
151
152* Owners for the network bug triage rotation can find instructions on
153  generating and modifying shifts
154[here (internal-only)](https://goto.google.com/net-triage-setup).
155
156* An overview of bug trends can be seen on [Chromium
157  Dashboard](https://chromiumdash.appspot.com/components/Internals/Network?project=Chromium)
158
159* The issue tracker doesn't track any official mappings between components and
160  OWNERS. This [internal document](https://goto.google.com/kojfj) enumerates
161  the known owners for subcomponents. Owners information is dynamic, and the
162  document might become outdated, you can always go to the source, search for
163  the component in a DIR_METADATA file and look for an OWNERS file in the same,
164  or parent directory.
165
166* [Web Platform Team SLOs](https://docs.google.com/document/d/18ylPve6jd43m8B7Dil6xmS4G9MHL2_DhQon72je-O9o/edit)
167
168* [Web Platform bug triage guidelines](https://docs.google.com/document/d/1JOtp1LS7suqTjMuv41jQFc7aCTR33zJKPoGjKpvVFCA)