注意
本文档适用于 Ceph 的开发版本。
分析和调试 Teuthology 作业
要了解如何安排集成测试,请参阅安排测试运行。
查看测试结果
当 Teuthology 运行成功完成后,使用 pulpito 仪表板查看结果
http://pulpito.front.sepia.ceph.com/<job-name>/<job-id>/
或 ssh 进入 Teuthology 服务器查看集成测试的结果
ssh <username>@teuthology.front.sepia.ceph.com
并访问 Teuthology 存档,如本例所示
nano /a/teuthology-2021-01-06_07:01:02-rados-master-distro-basic-smithi/
注意
这需要您有权访问 Sepia 实验室。要了解如何请求访问 Sepia 实验室,请参阅:https://ceph.github.io/sepia/adding_users/
识别失败的作业
在 pulpito 上,红色的作业表示失败的作业或死亡的作业。作业是 qa/suites 中 yaml 片段定义的守护进程和配置的组合。Teuthology 使用这些配置并运行 qa/tasks 中列出的任务,这些任务是设置测试环境和测试 Ceph 组件的命令。这些任务涵盖了大部分用例,有助于暴露 make check 测试未暴露的错误。
作业失败可能由以下一个或多个原因引起
环境设置(在不同系统上测试):测试与支持版本的稳定版本的兼容性。
配置值的排列组合:例如,qa/suites/rados/thrash 确保我们在压力工作负载下对 Ceph 运行 thrashing 测试,以便我们能够捕获边界情况错误。用于测试的最终设置配置 yaml 文件可以在以下位置访问
/a/<job-name>/<job-id>/orig.config.yaml
有关 config.yaml 的更多详细信息可以在 详细测试配置 中找到
对故障原因进行分类
当作业失败时,您需要阅读其 teuthology 日志以分类其失败原因。使用作业的名称和 pulpito 中的 ID 来定位您失败作业的 teuthology 日志
http://qa-proxy.ceph.com/<job-name>/<job-id>/teuthology.log
打开日志文件
/a/<job-name>/<job-id>/teuthology.log
例如
nano /a/teuthology-2021-01-06_07:01:02-rados-master-distro-basic-smithi/5759282/teuthology.log
每次作业失败都记录在 teuthology 日志中,作为 Traceback 并添加到作业摘要中。
查找 Traceback 关键字并搜索调用堆栈和日志以查找导致失败的问题。通常,回溯将包括失败的命令。
注意
teuthology 日志会不时被删除。如果您无法访问此示例中的链接,只需使用 http://pulpito.front.sepia.ceph.com/ 中的任何其他情况即可
报告问题
简而言之:首先检查您的作业失败是否由已知问题引起,如果不是,则提出跟踪器工单。
在您对失败原因进行分类并确定它不是由您对代码所做的更改引起的之后,这可能表明您遇到了上游分支中的已知故障(在本节中我们考虑的示例中,上游分支是“octopus”)。如果失败不是由您对代码所做的更改引起的,请转到 https://tracker.ceph.com,使用正在调查的故障中发现的关键字查找与该故障相关的跟踪器问题。
如果您在 https://tracker.ceph.com 上找到类似问题,请在该问题上留言,解释您对故障的理解,并确保包含指向您最近测试运行的链接。如果您没有找到类似问题,请为此问题创建一个新的跟踪器工单,并尽可能彻底地解释您的作业失败原因。如果您不确定导致作业失败的原因,请向团队成员寻求帮助。
使用 interactive-on-error 调试问题
当您在测试期间遇到作业失败时,您应该尝试重现它。这就是 --interactive-on-error 发挥作用的地方。本节解释了如何使用 interactive-on-error 以及它的作用。
当您确认作业已失败时,再次在 teuthology 中运行相同的作业,但添加 interactive-on-error 标志
ideepika@teuthology:~/teuthology$ ./virtualenv/bin/teuthology -v --lock --block $<your-config-yaml> --interactive-on-error
使用 自定义 config.yaml 或来自失败作业的 yaml 文件。如果您使用来自失败作业的 yaml 文件,请将 orig.config.yaml 复制到您的本地目录
ideepika@teuthology:~/teuthology$ cp /a/teuthology-2021-01-06_07:01:02-rados-master-distro-basic-smithi/5759282/orig.config.yaml test.yaml
ideepika@teuthology:~/teuthology$ ./virtualenv/bin/teuthology -v --lock --block test.yaml --interactive-on-error
如果在使用 interactive-on-error 标志时作业失败,teuthology 将锁定 config.yaml 所需的机器。Teuthology 将暂停测试机器,并将其保持在作业失败时的状态。您将进入交互式 python 会话。从那里,您可以 ssh 进入系统以调查作业失败的原因。
调查失败后,只需终止会话。Teuthology 将清理会话并解锁机器。