Yocto Build Failure Swat Team
The role of the SWAT team is to monitor the autobuilder and investigate all failures to ensure that they are logged and brought to the attention of the appropriate owner.
All builds that are run on the public autobuilder are important for the Yocto Project, whether they be a post-merge validation run (for master or a release branch) or a pre-merge test build (for master-next, ross/mut, and others). SWAT doesn't cover company-internal autobuilders.
Every build should be monitored by the SWAT team unless the BuildLog entry for that build indicates otherwise. SWAT is opt-out by whomever triggers a build on the autobuilder, not opt-in.
SWAT isn't responsible for resolving any issues encountered on the autobuilder. Their focus is on performing minimal analysis of a failure in order to ensure that it is logged and brought to the attention of a appropriate owner, a process we'll refer to as pre-triage.
Active member: the currently active member of the SWAT team is expected to monitor the autobuilder and pre-triage failures in a timely fashion. Team members are active for one week at a time and rotation is usually simple round robin through the members list. If for some reason the next person isn't available then they can be skipped.
SWAT Chair: the SWAT chair provides backup cover for the active member and is a first point of contact for SWAT. Ross Burton is the current SWAT Chair.
SWAT Facilitator: the SWAT facilitator is responsible for managing the rotation process. Stephen K. Jolley is the current SWAT Facilitator.
The BuildLog wiki page is automatically updated by the autobuilder when a new build is triggered. This often includes guidance for SWAT (the "Reason" field when triggering the build) such as to ignore it (if the build is expected to break and the owner is monitoring themselves) or a request to report failures straight to a specific person (if the build only contains changes from a single person, such as a GCC upgrade). Unless when told otherwise, the usual process is as follows:
For builds against master or a release branch, any issues observed should be filed in Bugzilla.
For builds against other branches (master-next, ross/mut, -next branches for stable releases, etc.), attempt to identify what patch in the branch is likely responsible for the failure. For example, if wget fails with libgnutls errors and there is a GnuTLS upgrade in the branch, that is the likely candidate. If a patch can be identified that isn't also in master or release branch, reply on the mailing list with the failure details. If it isn't obvious which patch is responsible for the failure then file a bug and ensure the branch owner is either the assignee or on the CC list.
If in doubt, file a bug. All observed errors must be actioned unless a patch has already been sent for the issue, in which case please make note of this in the BuildLog.
The results of pre-triage for an issue should be added to the corresponding entry in the BuildLog, including a link to the resolution (patch name, bug link, etc) and a brief summary of the issue. Every issue should be added to the build log so it acts as a build status report.
When filing the bug two things are required:
- A link to the build failure. This can either be the build page (such as https://autobuilder.yoctoproject.org/typhoon/#/builders/34/builds/168) or the error reports page (such as http://errors.yoctoproject.org/Errors/Details/199667/).
- The error itself. Trim the log down to just the error and any relevant context in the bug description, and also attach the complete log file. Autobuilder logs are not persistent so the full log must be attached.
- Monitor builds via one or more of:
- the autobuilder: main page, console view. Orange builds have warnings, red builds failed with errors.
- the Error Reports web page which has an entry for each recipe that fails. A link to the appropriate search is on the autobuilder's Console View.
- the BuildLog wiki page. This has links to each build log that wasn't successful.
- the yocto-builds mailing list. This gets a mail for every unsuccessful build.
- Pre-triage each failure:
- File a bug or respond to a patch or note known issues
- Update the BuildLog with the result of pre-triage, linking to the resolution where possible.
Questions / Contact
- Paul Eggleton (NZ)
- Ross Burton (UK)
- Amanda Brindle (US)
- Chen Qi (CN)
- Armin Kuster (California)
- Anuj Mittal (Malaysia)