注意
本文档适用于 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/
Note
这需要您有访问 Sepia 实验室的权限。有关如何请求访问 Sepia 实验室的信息,请参阅:https://ceph.github.io/sepia/adding_users/
识别失败的任务
在 pulpito 上,红色的任务表示失败的任务或死任务。任务是由在qa/suites中定义的守护进程和配置组合而成的。Teuthology 使用这些配置并运行在qa/tasks中列出的任务,这些是设置测试环境和测试 Ceph 组件的命令。这些任务涵盖了大量的用例,并有助于暴露由make check测试暴露的未暴露的 bug。
任务失败可能由以下一个或多个原因引起:
环境设置 (在不同系统上进行测试
配置值的排列:例如,qa/suites/rados/thrash确保我们在有压力的工作负载下对 Ceph 进行颠簸测试,以便我们可以捕获角落案例的 bug。用于测试的最终设置配置 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
关键字,并在调用堆栈和日志中搜索导致失败的 issue。通常,Traceback 会包含失败的命令。
Note
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 将清理会话并解锁机器。
建议资源
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.