5 Star 1 Fork 9

src-openEuler / dwarves

 / 详情

[23.03]openvswitch服务启动失败

已验收
缺陷
创建于  
2023-02-20 20:53

【环境信息】
软件信息:
1) OS版本及分支:openEuler-23.03
2) 内核信息:6.1.8-3.0.0.8.oe2303
3) 发现问题的组件版本信息:openvswitch-2.12.4-2.oe2303
如果有特殊组网,请提供网络拓扑图
【问题复现步骤】
具体操作步骤
dnf install openvswitch
setenforce 0
systemctl start openvswitch
systemctl status openvswitch
出现概率(必现)
【预期结果】
服务启动成功
【实际结果】
服务启动失败
【附件信息】
systemctl status openvswitch:
输入图片说明
journalctl:
输入图片说明
dmesg:
输入图片说明

附件
ga_beng_cui 2023-02-20 21:05

评论 (5)

ga_beng_cui 创建了缺陷

Hi ga_beng_cui, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers: @YangYingliang , @成坚 (CHENG Jian) , @jiaoff , @zhengzengkai , @刘勇强 , @wangxiongfeng , @朱科潜 , @WangShaoBo , @lujialin , @wuxu_buque , @Xu Kuohai , @冷嘲啊 , @Lingmingqiang , @yuzenghui , @juntian , @OSSIM , @陈结松 , @whoisxxx , @koulihong , @刘恺 , @hanjun-guo , @woqidaideshi , @Chiqijun , @Kefeng , @ThunderTown , @AlexGuo , @kylin-mayukun , @Zheng Zucheng , @柳歆 , @Jackie Liu , @zhujianwei001 , @郑振鹏 , @SuperSix173 , @colyli , @Zhang Yi , @htforge , @Qiuuuuu , @Yuehaibing , @xiehaocheng , @guzitao , @CTC-Xibo.Wang , @zhanghongchen , @chen wei , @Jason Zeng , @苟浩 , @DuanqiangWen , @georgeguo , @毛泓博 , @AllenShi , @zhangjialin , @Xie XiuQi

openeuler-ci-bot 添加了
 
sig/Kernel
标签
ga_beng_cui 上传了附件dmesg_23.03_log

从log上看,应该是加载module不成功。
有一个参考连接:

https://bugzilla.redhat.com/show_bug.cgi?id=2071969

看起来和我们的内核是类似的问题,只是平台不同。

看起来从spec和源码上面都有解决方案。 revert dwarves只是一个暂时规避的方式。
但解决问题还是要从kenrel/libbpf/spec上去解决。

以上是个人建议,抛砖引玉,仅供参考。

@张以正

好的,后续会推动kernel sig的同学跟进

  1. !3:升级dwarves版本到1.22 PR将pahole版本升级到了122

  2. 内核中CONFIG_PAHOLE_HAS_SPLIT_BTF依赖构建环境的PAHOLE_VERSION版本,大于119版本将置y,如下:
    config PAHOLE_HAS_SPLIT_BTF
    def_bool PAHOLE_VERSION >= 119

3.进一步导致CONFIG_DEBUG_INFO_BTF_MODULES置y, 使得构建出的内核镜像中register_btf_id_dtor_kfuncs函数中进入异常分支,
打印出missing module BTF, cannot register dtor kfuncs

int register_btf_id_dtor_kfuncs(const struct btf_id_dtor_kfunc *dtors, u32 add_cnt,
                                struct module *owner)
{
        struct btf_id_dtor_kfunc_tab *tab;
        struct btf *btf;
        u32 tab_cnt;
        int ret;

        btf = btf_get_module_btf(owner);
        if (!btf) {
                if (!owner && IS_ENABLED(CONFIG_DEBUG_INFO_BTF)) {
                        pr_err("missing vmlinux BTF, cannot register dtor kfuncs\n");
                        return -ENOENT;
                }
                if (owner && IS_ENABLED(CONFIG_DEBUG_INFO_BTF_MODULES)) {
                        pr_err("missing module BTF, cannot register dtor kfuncs\n");
                        return -ENOENT;
                }
                return 0;
        }

修改方法:
构建环境不升级DWARVES(pahole)版本,保持在原来的1.17版本
/close

使用最新版本已验证,无此问题
输入图片说明

ga_beng_cui 任务状态已完成 修改为已验收

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(5)
5329419 openeuler ci bot 1632792936 9922511 chenxi mao 1711352102 9057761 ethan zhang 1638257525 7361816 ga beng cui 1655284969
1
https://gitee.com/src-openeuler/dwarves.git
git@gitee.com:src-openeuler/dwarves.git
src-openeuler
dwarves
dwarves

搜索帮助