openeuler-riscv / oerv-team

OERV 实习生工作中心
6 stars 35 forks source link

[mugen_2403 round1]处理mugen测试套 openmpi 失败的测试用例 #718

Open jiewu-plct opened 2 months ago

jiewu-plct commented 2 months ago

需求:

  1. 2403_mugen失败测试用例清单 中找到测试套 openmpi 失败的测试用例
  2. openEuler RISC-V 24.03 版本最新的镜像上 double check mugen 中 openmpi 测试套里的测试用例,并在openEuler x86 24.03 LTS 版本镜像上做对比验证
  3. 定位失败的原因,并做出相应的处理: 如果确认是 riscv 架构的问题,向 src-openeuler 里对应的软件包仓库里提交 issue 如果是 mugen 测试用例的问题,修复测试用例后,向 mugen 上游提交 PR,提交 PR 时要贴上在 riscv 和 x86 两个架构的上测试结果

要求:

  1. 该项任务要求产出:

    • 分别在openEuler RISC-V 24.03 版本镜像和 openEuler x86 24.03 LTS 版本镜像上 double check 的结果,即完成需求2(必选,限制1天内完成)
    • 定位失败的原因,并做出相应的处理,即完成需求3(可选,对应薪资折半,限制2天内完成),如果无法完成,请在本 issue 的评论里说明情况,未完成的任务将重新设置为issue挂出。如果完成了该项任务,请在本 issue 评论里说明完成的情况
  2. 完成该项任务后,请在 2403_mugen失败测试用例清单 里找到相应测试套和测试用例栏位,并填写riscv复测结果,Failure Reason,Owner(填写中文名),Gitee ID,Issue/PR(填写提交issue或者PR的url),x86 测试情况。Issue/PR这个栏位可能已经填有内容,是之前在23.09版本上其他实习生同学分析的结果,供参考

说明:

  1. mugen 源码以及使用方法:https://gitee.com/openeuler/mugen
hehellooedas commented 1 month ago

测试结果

在openEuler 24.03 x86中测试: 图片

在openEuler 24.03 RISC-V中测试: 图片

二者都是同一个测试出错,它是oe_test_openmpi_cluster.


原因分析

oe_test_openmpi_cluster.sh脚本中已知的错误: 1、命令的问题 图片 重新配置防火墙的这个命令叫iptables, 脚本中写成了iptable.

图片 在日志中显示该文件系统为只读文件系统,那么在mount挂载的时候应该加上-o rw参数


我踩坑的点

1、变量传递 图片 脚本中使用了这几个变量,是在mugen的配置文件里指定的,需要仔细观察README.

2、shopt不存在问题 图片 在早期测试中,日志里经常出现shopt找不到命令的错误,这是因为我把我当前用户的默认shell设置为了zsh,而zsh是没有shopt功能的,这是bash独有的功能,因此可以开一个bash子进程来跑这个测试。

3、ssh无法连接问题 图片 为了方便测试,我把那三个需要传递进去的变量里其中的ip地址变量直接写当前机器的ip地址,用户写成root ,这个时候ssh无法成功连接。必须把/etc/ssh/ssh_config里的PermitRootLogin yes这个参数给注释掉才行。

4、防火墙问题 在ssh连接的时候出现被防火墙阻拦的问题,在测试的时候最好把防火墙关掉,测试结束之后再打开,防止firewalld干扰测试。


最新进展

图片 图片 openmpi仍然不能正常运行,因此oe_test_openmpi_cluster测试里的所有子测试都不能通过。

尝试解决失败

经过多次尝试,由于opemmpi涉及到远程连接,而远程连接的数据传递总是出现失败的情况,导致之后的编译工作也跟着失败,我没有办法使它成功传递数据。