ASan nightly 版

**ASan nightly 版项目**涉及构建一个包含流行的AddressSanitizer工具的 Firefox nightly 版浏览器,并增强其远程崩溃报告功能,以便检测到任何错误。

该项目的目的是查找在常规浏览过程中发生的细微内存损坏,这些损坏要么根本不会导致崩溃,要么以我们无法仅从崩溃转储中确定确切问题的方式崩溃。我们有很多无法采取行动的崩溃报告,而 AddressSanitizer 跟踪通常本身就更容易采取行动(尤其是使用后释放跟踪)。该项目的一部分是确定 ASan 是否以及可以为我们提供多少可操作的崩溃报告,只需四处浏览即可。当然,该项目的成功也取决于参与者的数量。

您可以使用以下链接之一下载最新版本。这些版本每天都会自动更新,就像常规的 nightly 版构建一样(与常规版本一样,您可以转到“帮助”→“关于 nightly 版”以强制进行更新检查或确认您运行的是最新版本)。

注意

如果您来这里是为了寻找常规 ASan 版本(例如,用于模糊测试或作为开发人员来重现崩溃),您可能应该转到地址 Sanitizer文档。

要求

当前要求为

  • 基于 Windows 或 Linux 的操作系统

  • 建议使用 16 GB 内存

  • 特殊的 ASan nightly 版 Firefox 版本

如果您已经在使用常规 nightly 版,则与常规 nightly 版实例共享配置文件应该是安全的。如果您通常使用 beta 版或正式版构建(并且您希望能够切换回这些版本),则应考虑使用第二个配置文件。

警告

**Windows 用户:**请注意,Windows 版本在设置过程中目前会显示错误(请参阅下面的“已知问题”部分),但安装仍然可以进行。我们正在解决这个问题。

注意

如果您在具有任何额外安全限制的环境中运行(例如自定义进程沙箱),请确保您的 /tmp 目录可写,并且随附的llvm-symbolizer二进制文件可在 Firefox 进程中执行。

首选项

如果您希望您的崩溃报告可识别,您可以转到about:config并将**``asanreporter.clientid``**设置为您的**有效电子邮件地址**。这不是强制性的,当然您可以匿名报告崩溃跟踪。如果您决定使用您的电子邮件地址发送报告并且您拥有 Bugzilla 帐户,请考虑使用与您的 Bugzilla 帐户相同的电子邮件。然后,我们将针对您的崩溃报告中提交的任何错误抄送您。如果您的电子邮件不属于 Bugzilla 帐户,那么我们不会发布它,而只会使用它来解决有关您的崩溃报告的问题。

注意

设置此首选项有助于我们在我们对您的设置/操作系统有疑问时与您取得联系。请考虑使用它,以便我们如有必要可以与您取得联系。

漏洞赏金计划

作为参与该计划的特别奖励,我们决定将所有提交的报告都视为直接在 Bugzilla 中提交。这意味着以下报告

  • 表明存在严重或高等级的安全问题

  • **并且**我们的开发人员可以修复

根据我们的客户端漏洞赏金计划规则有资格获得漏洞赏金。由于该报告通常不包含任何重现步骤或测试用例,因此它很可能会获得较低级别的赏金。与常规错误报告一样,我们通常会奖励第一个(可识别的)问题报告。

警告

如果您想参与赏金计划,请确保您已如上所述设置了**``asanreporter.clientid``**首选项。我们无法奖励任何未附带电子邮件地址的提交报告。

已知问题

本节列出了 ASan nightly 版版本中所有当前已知的限制,这些限制被认为是错误。

  • [删除线:Flash 目前无法使用]

  • 错误 1477490[删除线:- Windows:由于误报导致堆栈检测禁用]

  • 错误 1478096 - **Windows:**使用 maintenanceservice_tmp.exe 安装时出错

  • 据报道,如果您在 120hz 刷新率的屏幕上运行,ASan nightly 版的性能特别差。切换到 60hz 可以大幅提高性能。

请注意,这些错误是**特定于**ASan nightly 版的,如跟踪错误依赖项列表中所列。有关此项目发现的错误的完整列表,请参阅此列表,并注意某些错误可能未显示,因为它们是安全错误。

如果您遇到此处未列出的错误,请在bugzilla.mozilla.org上提交错误或发送电子邮件至choller@mozilla.com。在提交错误时,如果您抄送该电子邮件地址并将错误阻止错误 1386297,将非常有帮助。

常见问题

收集了哪些额外数据?

该项目仅收集 ASan 跟踪和(如果您在首选项中设置)您的电子邮件地址。我们不收集任何其他浏览器数据,特别是您访问的网站或页面内容。它实际上只是提交到远程位置的崩溃跟踪。

注意

ASan nightly 版浏览器仍然具有常规 nightly 版浏览器的所有数据收集功能。以上答案仅指除了常规 nightly 版浏览器可以收集的内容之外,此项目额外收集的内容。

性能影响如何?

ASan nightly 版构建仅在启动和浏览时会略微变慢,有时甚至不会注意到。但是,内存消耗比常规构建高得多。做好准备,有时需要重新启动浏览器,尤其是在您同时使用大量标签页时。此外,更新比常规更新更大,因此更新的下载时间会更长,尤其是在您的互联网连接较慢的情况下。

警告

如果您遇到性能问题,请参阅上面的“已知问题”部分,特别是关于屏幕刷新率降低 Firefox 性能的问题。

稳定性如何?

浏览器与常规 nightly 版构建一样稳定。现在已经有很多人使用它进行日常工作数周了,我们几乎没有收到任何崩溃报告。

如何确认我正在运行正确的版本?

如果您打开about:config并在搜索字段中键入“asanreporter”,您应该会看到一个名为asanreporter.apiurl的条目,该条目与一个 URL 相关联。请勿修改此值。

警告

从 Firefox 64 开始,“ASan 崩溃报告程序”功能不再列在about:support

是否会支持 Mac?

我们正在努力支持 Mac,但这可能需要更长时间,因为由于硬件限制,我们在 Mac 上没有 ASan CI 覆盖范围。如果您从事发布工程工作并希望帮助尽早实现例如 Mac 支持,请随时联系我