每日构建中难以报告的 Bug 的一些指导原则

每日构建中难以报告的 Bug 的一些指导原则

最新的两个每日图像无法安装在我的Nexus 7,32GB + 3G。旧版本运行良好。背景看起来像彩色的雪。(我无法发布屏幕截图。)

没有可见的屏幕键盘。所以我无法输入任何内容(例如用户名、密码等)。

答案1

您至少安装了两个日常生活图像。它们都成功了。

然后你尝试了最近两次日常生活s 刚出来时,它们就失败了。您付出了额外的努力,并通过多次尝试重新安装来验证它失败了。它继续在同一个点以与以前相同的方式失败。

您现在应该提交您的错误报告。

你不必再回去确保它仍然像以前一样工作。这是一个日常生活预计它会运行、失败,然后(但愿最终)再次运行,一天又一天。

每日构建中难以报告的 Bug 的一些指导原则

如果你还没有这样做,请务必仔细阅读. 有关报告错误的一般信息(不特定于 Ubuntu),看看这里. 熟悉也。

您将针对哪个软件包报告错误,以及您应该尝试收集哪种技术信息,将取决于错误发生的方式和表现形式。

这不是一个流程图,而更像是对 alpha/beta 版本的基本错误故障排除和报告的解释,从按时间顺序最早(启动后)和最难报告的错误开始,然后逐渐增加到较晚且通常更容易提交的错误。

您需要一个键盘才能完成其中的一些操作,但是如果您因此无法在错误报告中提供尽可能多的信息,您仍然应该在发现错误时报告它们。

我写这篇文章是为了解决你的一般情况(希望它也能帮助其他人解决各种问题)。 日常生活测试场景);如果其中一些内容不适用于您,请不要担心。

但是,您可能希望尝试安装蓝牙键盘,以便可以执行更广泛的故障排除方法。根据错误发生的位置,这可能可行,也可能不可行。如果您想尝试这样做,这些资源可能会有帮助。另外,请注意带蓝牙的笔记本电脑可以用作蓝牙键盘适用于您的平板电脑。

  1. 如果你从来没有加载过 GUI,甚至没有出现 Plymouth 启动画面(带有 Ubuntu 和彩色圆点),请尝试启动nomodeset。无论是否成功,请报告针对该软件包的错误linux

    ubuntu-bug linux如果成功,这是很重要的信息,另外它让你可以通过从开始或(如果你只有命令行)开始更好地报告错误apport-cli linux。有关更多信息,请参阅man ubuntu-bugman apport-cli

  2. 如果 GUI 始终未加载,但您获得了虚拟控制台,或者您可以通过按Ctrl+ Alt+F1Ctrl+ Alt+获取一个F2,然后报告错误xserver-xorg(除非您怀疑它是特定的视频驱动程序并且知道或可以找到提供它的软件包的名称)。apport-cli如果可能的话请使用。

    确保/var/log/Xorg.0.log已将 附加到错误报告中。在实时系统中,尤其是早期出现故障以致无法重新启动 GUI 并使其正常工作的系统上,通常不会有Xorg.0.log.old/var/log但如果有,请确保也将其附加到报告中。

    另外,如果存在的话,请确保/home/ubuntu/.xsession-errors/home/ubuntu/.xsession-errors.old已连接。如果问题发生得早,则可能两者都不存在。

    如果您可以随时获得虚拟控制台,并且可以连接到互联网,那么提交包含出色技术信息的错误报告并不难。

    您可以使用apport-cli,并且可以将您需要附加到错误报告中的任何其他文件传输到另一台机器(因为您可能会发现 Launchpad 与基于文本的 Web 浏览器一起使用很麻烦,例如links2)。

    通常情况下,如果没有 GUI,很难通过无线方式将机器连接到互联网(大多数无线用户都有 GUI,因此这是一种小众的东西,而且还没有网络管理器的命令行客户端为了现已发布多版本)。因此,如果可能的话,最简单的连接互联网的方式可能是通过以太网(如果你拥有必要的硬件,包括电脑中的以太网卡)。当然,如果你在虚拟机上进行测试,那么将其连接到互联网应该没有问题。

    如果你有另一台机器(或者这是一台虚拟机),有时安装一个SSH服务器,以便您可以从外部连接到它。这使得从终端复制和粘贴文本变得容易,因此当我必须使用时,我几乎总是这样做apport-cli

    你也可以在测试系统上运行图形程序,并让其界面出现在 SSH 客户端上(即使测试系统上的 GUI 有问题,即使 X 服务器根本无法启动,这种方法也能奏效)。这种方法非常方便——ubuntu-bug例如,您可以以图形方式运行。(ubiquity即使 GUI 无法在机器上运行,您也可以运行安装程序……但当 GUI 无法运行时,作为测试人员,您通常最好将精力投入到调查和错误报告中

  3. 如果桌面加载但您无法选择尝试 Ubuntu安装 Ubuntu,看看文本启动菜单是否能让你选择一个。Spacebar当键盘和人物图标出现在屏幕底部附近时(这是 DVD/USB 首次开始启动时的情况),按 (或任意键)。这应该会出现文本启动菜单。你可以用箭头键选择你想要的选项,然后按Enter

    如果在图形屏幕上选择尝试或安装 Ubuntu 时出现问题,则可能是您在ubiquity-dm可执行文件中发现了错误,该可执行文件由 提供ubiquity,该软件包与提供图形安装程序 Ubiquity 的软件包相同。在这种情况下,最好的办法是生成错误,然后转到虚拟控制台,使用pidof或者pgrep, 或者ps管道输送至grepps ax | grep ubiquity-dm)获取 的 PID ubiquity-dm,然后运行(替换apport-cli PIDPID当然是和实际数字一致)。

  4. 如果你可以选择尝试 Ubuntu安装 Ubuntu但其中一个不起作用,这是重要信息。请重试并选择另一个。

    • 如果尝试 Ubuntu如果可以正常工作,并且您获得了功能齐全的桌面,请尝试运行安装程序。它很可能(但不一定)无法工作。然后您可以报告错误。(毕竟,您有一个功能齐全的桌面环境。)有时可以通过从终端窗口运行 Ubiquity 来获取有关出现问题的其他信息。为此,请按Ctrl+ Alt+ T。对于 Ubuntu,运行ubiquity gtk_ui;对于 Kubuntu,运行ubiquity kde-ui--debug/-d标志有时很有用,但请阅读手册页首先,你要明白它将详细的调试输出放在哪里,并记住它会导致几乎所有内容都需要记录,包括您在安装过程中输入的任何密码!
    • 如果安装 Ubuntu如果有效,安装程序就会运行。通常,可以取消安装程序,这样用户就可以进入功能齐全的桌面。看看是否有效。

    不管什么功能不起作用,您都可以报告错误(这是最重要的)。不管什么功能起作用,您都可以测试(并报告任何发现不起作用或不能正常工作的内容)。在所有错误报告中,请确保准确报告您试图导致发生的情况、您做了什么以及发生了什么。

  5. 如果您正在使用安装程序或其他应用程序,并且 GUI 停止工作(以至于您无法继续在机器上运行图形应用程序),请查看它是否由同一事件可靠地触发。如果是,太棒了!这绝对应该报告为错误。(如果它只是偶尔发生,仍然应该报告为错误。)

    转到虚拟控制台,查看是否由于崩溃而导致。一种简单的方法是检查.crash中是否有文件/var/crash。如果没有,则 Apport 崩溃报告被禁用(早期 alpha 版本有时会出现这种情况,cat /etc/default/apport如果enabled=1已启用,您可以运行 )。

    如果有崩溃文件,apport-cli则运行该文件以报告崩溃。如果问题不是崩溃,则报告崩溃xserver-xorg(除非您怀疑另一个软件包是原因),apport-cli xserver-xorg如果可以的话使用。

  6. 如果 GUI 停止响应但仍然看起来正常,则可能是由应用程序(例如 Ubiquity)冻结引起的,它以某种方式垄断了 X 服务器并阻止提供新的输入。

    如果有人可以更好地解释这种情况发生的原因和方式,我们将非常欢迎进行编辑!

    我不确定是针对触发该问题的应用程序还是针对 X 服务器进行报告更好,但我认为可能是应用程序,因为那里首先出现了问题。

    无论如何,首先要做的就是退出应用程序,看看是否是这种情况。您可以使用上面第 3 部分中介绍的相同进程实用程序来找出您怀疑是触发因素的应用程序的 PID(或 PID,包括 Ubiquity 在内的某些应用程序有多个关联进程)。然后,您可以尝试使用以下命令终止它们killkillall, 或者pkill。例如,要终止PID4000 的进程,请运行kill 4000。如果这不起作用(您可以ps再次使用或类似的实用程序来查看),请尝试kill -KILL 4000(发送终止信号代替信号终端)。如果出现或类似的错误,请尝试以--或 的形式Permission denied运行它。rootsudo kill 4000sudo kill -KILL 4000

    成功终止应用程序后,返回 GUI ( Alt+ F7) 并查看它是否再次响应。如果是,则相当合理地确认您刚刚终止的进程的应用程序是导致问题的原因,或至少与问题有关。

    一旦您验证了确实发生了这种情况,请重现冻结,然后切换到虚拟控制台并使用 报告错误。apport-cli PID

  7. 如果发生以下问题没有让 GUI 无法正常工作,太棒了!查找错误是测试的主要目的,而查找不会给自己的报告带来困难的错误是最好的情况。

    • 如果发生崩溃,让 Apport 收集并发送堆栈跟踪和其他重要技术信息,然后填写报告。
    • 如果是其他类型的错误,请ubuntu-bug尽可能使用一些有价值的信息仍会被发送。通常,如果应用程序运行时出现了 bug(尤其是应用程序没有响应时),则使用ubuntu-bug该应用程序的 PID 进行调用尤其有价值。或者,由于 GUI 正在运行,因此您可以运行ubuntu-bug -w并点击有问题的应用程序窗口

无论您的错误何时发生、它是什么样子以及您能够发现有关它的什么信息,请牢记以下一些一般注意事项:

  • 当您报告一个不会导致崩溃的错误时,它位于哪个软件包中通常只是猜测。最好尽可能地猜测,但有时必须认真调查该错误,然后才能知道。此外,我无法彻底解释如何找出受影响的软件包(主要是因为我经常不知道如何操作,但也因为有很多考虑因素;对这个问题的完整处理可能需要一整本书)。

    报告错误后,错误的软件包可能会发生变化,因此,您不应该因为不知道错误会影响哪个软件包而花费太长时间报告它。

    您还可以一次针对多个软件包提交错误报告。在 Launchpad 上提交错误报告后,您可以添加其他软件包。您还可以添加上游项目(通常是与受影响的软件包相对应的项目,这些软件包或 Ubuntu 中首次报告错误的软件包)和其他发行版中的软件包(但通常只有在您知道错误发生在那里并且其他发行版的错误跟踪器上有错误报告时才应添加它们)。

  • 首先搜索在提交错误报告之前,特别是如果它不是崩溃错误。(此答案顶部附近的材料链接解释了如何正确执行此操作。)

  • 您的错误报告应该清晰,并尽可能详细。日常生活应注明日期日常生活如果可能的话。如果你知道什么日常生活似乎引入了错误,肯定包含该信息!

获取特定的每日构建版本

通常,你想使用最新的日常生活。看看有没有更新的这里比你已经拥有的更好。几乎总是最好用最新的日常生活

(或最新的每日预装,如果这就是你正在测试的......尽管这在很大程度上超出了该答案的范围。)

如果某个每日构建中出现了错误,通常不需要用之前的构建再次测试。对于以下错误尤其如此:总是发生(这似乎是您示例场景中的情况)。另一方面,对于随机崩溃,可能值得回到最近的上一个日常生活看看您是否可以生成它们。但是,通常只有在以下情况下才应这样做:(a) 您可以快速轻松地完成此操作,或者 (b) 对该错误有所了解,表明弄清楚它的确切启动时间尤为重要。

通常情况下,返回一个就足够了日常生活。服务器始终存储两个。(极少数情况下会存储多个日常生活一天内,服务器有时会同时出现三个,但不会超过两天。)

如果你觉得你确实需要(或想要)更早日常生活比现在的要好cdimage.ubuntu.com,我不认为老日常生活s 被正式保留以供分发,但有时可以获得三天前的(或者有时甚至更早的)日常生活来自尚未完全更新的镜像。

您可以在网络上搜索此内容,其中 是ubuntu代表您想要的每日直播日期的数字串,以及"daily live"。例如,为了找到您在问题中寻找的每日直播,我在 Google 上搜索了:

ubuntu "daily live" 20130110

通常,大多数结果都来自cdimage.ubuntu.com其本身。由于您已经检查过日常生活如果您想要的 ISO 不存在,您可以忽略它们。它们只是缓存数据(Google 不会缓存 ISO 本身)。

当你找到除 之外的服务器时cdimage,请检查一下。我发现了这个:

(我提供这个信息只是为了说明目的;任何人在我发布这篇文章一两天后阅读这篇文章的人都不应该期望这个服务器仍然保留那个特定的日常生活。但这没关系。这是为了展示如何对任意日常生活

这实际上是一个日志,显示镜像从中央服务器下载了哪些文件。关键是向上导航目录树。所以我上去ftp://ftp.tu-chemnitz.de/pub/linux/ubuntu-cdimage/

在那里我找到了一个daily-live目录,其中包含日常生活Google 为我找到的日志中显示了该文件。其中一个文件是日常生活我在寻找,20130110

FTP 站点通常也会有 Web 服务器,因此值得尝试在 URL 中替换ftp://为。(其余部分通常相同,http://即使它开始像ftp.。)有时 HTTP 服务器会更快,有时 FTP 服务器会最快。更新较慢的镜像下载速度可能也较慢,因此速度差异可能很重要。通常,网站的 FTP 和 HTTP 版本会同时(或几乎同时)更新,因为它们通常从同一服务器提供相同的文件,但情况并非总是如此。

如果你有较新的版本daily-live,你可以使用以下方法“更新”到较旧的版本zsync,就像从旧版本更新到新版本一样zsync针对 Ubuntu 进行打包,并且也适用于其他操作系统。如果您想在 Windows 上使用它,请参阅以下信息在这个答案中关于如何做到这一点。zsync需要 HTTP 才能工作;它不会通过 FTP 下载文件。(它将要当然可以通过域名以 开头的 HTTP 下载文件ftp.。)

如果您需要这个特定的旧每日直播,但又无法及时获取,请评论告诉我。我可能会想出其他内容。

相关内容