由 Sheriff 处理的间歇性故障¶
Firefox Sheriff 团队查看 Treeherder 中默认可见的所有任务(1 级和 2 级)的故障,这些任务是 Sheriff 处理的树(autoland、mozilla-central、mozilla-beta、mozilla-release、mozilla-esr 树)上的推送的一部分,并确定故障是回归还是间歇性故障。对于间歇性故障,Sheriff 会对故障进行注释,并在 Treeherder 中记录该注释。
在大多数情况下,Sheriff 会确定是否需要新的 Bug 或现有 Bug 已经跟踪此类故障。在大多数情况下,Sheriff 会使用“单一跟踪 Bug”对故障进行注释,在其他情况下,将会有单独跟踪的特定故障。
单一跟踪 Bug¶
单一跟踪 Bug 用于跟踪在 CI 中看到的测试故障。这些故障是在测试用例级别(通常是路径/文件名)而不是错误消息级别进行跟踪的。我们发现,很多时候我们有 >1 个 Bug 跟踪测试用例上的故障,但没有一个 Bug 频繁到足以引起测试所有者的注意。此外,当开发人员正在调查修复间歇性故障时,他们正在调试文件,并且能够在一个地方查看所有相关的故障非常有用。
有两种方法可以获取有关测试故障的详细信息
Treeherder,在查看特定问题时,有一个表格,在表格的最右侧是标题为
Log
的列。如果单击其下方的文本框,将填充所有故障类型的下拉列表,选择一个故障将过滤该故障以查看日志等。从
mach test-info
,可以查看所有故障及其发生位置的细分(例如:./mach test-info failure-report --bugid 1781668
)
单一跟踪 Bug 的工作流程如下
Sheriff 在 CI 中发现新的故障并创建新的 Bug。如果 Treeherder 可以找到路径,Treeherder 将推荐一个
single tracking bug
并删除错误消息。如果要注释的故障具有测试路径,并且在 Bug 建议列表中存在
single tracking bug
,Sheriff 将注释现有 Bug。只要测试路径匹配(以及其他标准,如崩溃、断言、泄漏等),Treeherder 将提供该选项作为选择。如果发生足够多的故障(目前每周 30 次故障等),Sheriff 将需要信息并对所有者进行分类。
开发人员将能够调查故障集,以及他们修复的任何特定 Bug(针对某些或所有条件)。最佳实践是使用
single tracking bug
作为元 Bug,并提交一个新的 Bug 来阻止具有特定修复的元 Bug。