diff -u: 自动化 Bug 报告

作者:Zack Brown

Bug 报告是好的。任何有可重现崩溃的人都应该在 linux-kernel 邮件列表上提交 bug 报告。开发人员会感谢您,您将帮助改进 Linux!

各种自动化 bug 猎手正在四处报告 bug。其中之一是 Syzbot,一个专门用于查找 Linux 中的 bug 并报告它们的开源工具。 Dmitry Vyukov 最近发送了一封精心制作的电子邮件,请求社区帮助使 Syzbot 更加有效。

主要问题是如何在 Syzbot 报告 bug 后跟踪这些 bug,以及如何判断何时将补丁应用于内核以解决给定的 bug。

事实证明,Andrey RyabininLinus Torvalds 合作,为 Dmitry 的问题提供了一个简单的解决方案:Syzbot 应该在其电子邮件地址中包含一个唯一的标识符。 想法是,电子邮件地址中“+”号后面的任何内容都会被完全忽略。 因此 zbrown@gmail.com 与 zbrown+stoptrump@gmail.com 完全相同。 Andrey 和 Linus 建议 Syzbot 使用这种技术来包含与每个 bug 报告关联的哈希值。 然后,Linux 开发人员会将该电子邮件地址包含在他们提交的补丁程序的“Reported-By”部分中,作为正常开发过程的一部分。

太棒了! 唯一的哈希值将跟随补丁程序进行每次迭代。

其他人对 Syzbot 提出了更多反馈。 Eric Biggers 希望看到一个面向公众的用户界面,以便开发人员可以检查 bug 的状态,诊断哪些内核版本受到影响等等。 事实证明,Dmitry 正在努力完成这样一件事情,尽管他需要更多的时间才能为公众所接受。

而且,Eric W. Biederman 对 Syzbot 的几个缺陷感到非常不满。 一方面,他认为 Syzbot 在解释如何重现给定的 bug 方面做得不够好。 它只是报告了问题,然后继续前进。 此外,Eric 不喜欢 Syzbot 中 Go 语言的使用,他说 Go 语言以一种复杂的方式处理线程,使得以简单的方式与内核交互变得困难。

但 Dmitry 向 Eric 保证,Syzbot 的重要部分是用 C++ 编写的,而使用 Go 语言的部分没有用于内核交互。 Dmitry 还指出,Syzbot 尽可能地提供了有关如何重现崩溃的信息,但并非总是可能,并且在很多情况下,这些 bug 非常简单,甚至没有必要重现它们。

事实上,真的没有太多讨论。 Dmitry 最初的问题很快就解决了,而且 Syzbot 及其后端软件似乎正在积极开发中。

Zack Brown 是 Linux JournalLinux Magazine 的技术记者,曾是“Kernel Traffic”每周通讯和“Learn Plover”速记打字教程的作者。 他于 1993 年首次在他的 386 电脑上安装了 Slackware Linux,配备了 8 MB 内存,并被开源社区彻底震撼。 他是 Crumble 纯策略棋盘游戏的创造者,你可以用几块纸板自己制作。 他还喜欢写小说、尝试动画、改革拉班符号、设计和缝制自己的衣服、学习法语以及与朋友和家人共度时光。

加载 Disqus 评论