登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
仓库状态说明
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
10
Star
2
Fork
44
src-openEuler
/
lvm2
关闭
代码
Issues
0
Pull Requests
2
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
dm-thin长稳压力测试时pvscan发生segfault
已完成
#I5OBZD
缺陷
peulerosci
创建于
2022-08-26 18:13
<h3>优先级:</h3>次要 <h3>详细描述:</h3> 【OS版本】:被测的版本信息 5.10.0-60.18.0.50.h355.kasan.openEuler-22.03-LTS.x86_64 lvm2-2.03.14-4.h6.openEuler-22.03-LTS.x86_64 【测试类型】 长稳压力测试 【测试步骤】 1.ramdisk组thinpool后不断创建和删除卷,同时mkfs和tune2fs并发执行 2.周期注入故障然后恢复,再重建thinpool 3,长时间重复,有结果1 【结果输出】 出现pvscan的segfault Reading symbols from /usr/sbin/pvscan... Reading symbols from /usr/lib/debug//usr/sbin/lvm-2.03.14-4.h6.openEuler-22.03-LTS.x86_64.debug... [New LWP 2682530] [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib64/libthread_db.so.1". Core was generated by `pvscan --cache'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431 431 format_text/format-text.c: No such file or directory. Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34-70.h12.openEuler-22.03-LTS.x86_64 libaio-0.3.112-2.h1.openEuler-22.03-LTS.x86_64 libblkid-2.37.2-5.h4.openEuler-22.03-LTS.x86_64 libcap-2.61-1.openEuler-22.03-LTS.x86_64 libgcrypt-1.9.4-1.h1.openEuler-22.03-LTS.x86_64 libgpg-error-1.43-1.openEuler-22.03-LTS.x86_64 libselinux-3.3-1.openEuler-22.03-LTS.x86_64 libsepol-3.3-2.h2.openEuler-22.03-LTS.x86_64 lz4-1.9.3-2.h1.openEuler-22.03-LTS.x86_64 ncurses-libs-6.3-2.h1.openEuler-22.03-LTS.x86_64 pcre2-10.39-1.openEuler-22.03-LTS.x86_64 readline-8.1-1.openEuler-22.03-LTS.x86_64 systemd-libs-249-16.h5.openEuler-22.03-LTS.x86_64 (gdb) bt #0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431 #1 0x000055dd6c0356ac in _vg_read_raw (cmd=<optimized out>, fid=0x55dd6df41450, vgname=<optimized out>, mda=0x55dd6df32180, vg_fmtdata=<optimized out>, use_previous_vg=0x0) at format_text/format-text.c:466 #2 0x000055dd6bfda782 in _online_devs (cmd=cmd@entry=0x55dd6de309e0, do_all=do_all@entry=1, pvscan_devs=pvscan_devs@entry=0x7ffd05527a50, pv_count=pv_count@entry=0x7ffd05527a40, complete_vgnames=complete_vgnames@entry=0x7ffd05527a30) at pvscan.c:1342 #3 0x000055dd6bfdc92a in _pvscan_cache_all (argc=0, argv=<optimized out>, complete_vgnames=0x7ffd05527a30, cmd=0x55dd6de309e0) at pvscan.c:1661 #4 pvscan_cache_cmd (cmd=0x55dd6de309e0, argc=<optimized out>, argv=<optimized out>) at pvscan.c:1939 #5 0x000055dd6bfc71cb in lvm_run_command (cmd=cmd@entry=0x55dd6de309e0, argc=<optimized out>, argc@entry=2, argv=<optimized out>, argv@entry=0x7ffd05527e98) at lvmcmdline.c:3278 #6 0x000055dd6bfc8f5e in lvm2_main (argc=2, argv=0x7ffd05527e98) at lvmcmdline.c:3811 #7 0x00007fead4dd5270 in ?? () from /usr/lib64/libc.so.6 #8 0x00007fead4dd531c in __libc_start_main () from /usr/lib64/libc.so.6 #9 0x000055dd6bfa20c5 in _start () 【预期输出】 无异常 【测试代码&初步定位结论】 待定位,core文件保留 <h3>原因分析:</h3> 【是否新引入rpm包,是否进行了安全编译选项扫描】 否 【定位分析】(有效问题请“先对原有功能进行描述,重点描述与当前故障现象相关的技术点、以及缺陷出现的触发条件、错误出现的函数等”;非问题“需要澄清技术细节,描述技术实现原理以及当前现象合理性的解释”;重复问题请“说明重复问题单号”) 问题栈#0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431431 if (!vg && !*use_previous_vg) { // 异常点, use_previous_vg = 0x00Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34-70.h26.openEuler-22.03-LTS.x86_64 libaio-0.3.112-2.h1.openEuler-22.03-LTS.x86_64 libblkid-2.37.2-5.h7.openEuler-22.03-LTS.x86_64 libcap-2.61-1.h1.openEuler-22.03-LTS.x86_64 libgcrypt-1.9.4-1.h4.openEuler-22.03-LTS.x86_64 libgpg-error-1.43-1.openEuler-22.03-LTS.x86_64 libselinux-3.3-1.openEuler-22.03-LTS.x86_64 libsepol-3.3-2.h2.openEuler-22.03-LTS.x86_64 lz4-1.9.3-2.h1.openEuler-22.03-LTS.x86_64 ncurses-libs-6.3-2.h2.openEuler-22.03-LTS.x86_64 pcre2-10.39-1.h3.openEuler-22.03-LTS.x86_64 readline-8.1-1.openEuler-22.03-LTS.x86_64 systemd-libs-249-16.h31.openEuler-22.03-LTS.x86_64 xz-libs-5.2.5-2.h1.openEuler-22.03-LTS.x86_64(gdb) bt#0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431#1 0x000055dd6c0356ac in _vg_read_raw (cmd=<optimized out>, fid=0x55dd6df41450, vgname=<optimized out>, mda=0x55dd6df32180, vg_fmtdata=<optimized out>, use_previous_vg=0x0) at format_text/format-text.c:466 //传入的use_previous_vg = 0x00, 后续也没有赋值或者修改#2 0x000055dd6bfda782 in _online_devs (cmd=cmd@entry=0x55dd6de309e0, do_all=do_all@entry=1, pvscan_devs=pvscan_devs@entry=0x7ffd05527a50, pv_count=pv_count@entry=0x7ffd05527a40, complete_vgnames=complete_vgnames@entry=0x7ffd05527a30) at pvscan.c:1342#3 0x000055dd6bfdc92a in _pvscan_cache_all (argc=0, argv=<optimized out>, complete_vgnames=0x7ffd05527a30, cmd=0x55dd6de309e0) at pvscan.c:1661#4 pvscan_cache_cmd (cmd=0x55dd6de309e0, argc=<optimized out>, argv=<optimized out>) at pvscan.c:1939#5 0x000055dd6bfc71cb in lvm_run_command (cmd=cmd@entry=0x55dd6de309e0, argc=<optimized out>, argc@entry=2, argv=<optimized out>, argv@entry=0x7ffd05527e98) at lvmcmdline.c:3278#6 0x000055dd6bfc8f5e in lvm2_main (argc=2, argv=0x7ffd05527e98) at lvmcmdline.c:3811#7 0x00007fead4dd5270 in ?? () from /usr/lib64/libc.so.6#8 0x00007fead4dd531c in __libc_start_main () from /usr/lib64/libc.so.6#9 0x000055dd6bfa20c5 in _start ()(gdb) p vg$1 = (struct volume_group *) 0x0(gdb) p use_previous_vg$2 = (unsigned int *) 0x0(gdb) 出现问题的代码 vg = text_read_metadata(fid, NULL, vg_fmtdata, use_previous_vg, area->dev, primary_mda, (off_t) (area->start + rlocn->offset), (uint32_t) (rlocn->size - wrap), (off_t) (area->start + MDA_HEADER_SIZE), wrap, calc_crc, rlocn->checksum, &when, &desc); //测试时,内核注入故障,导致读取元数据失败,vg 返回为NULL,所以触发了后续空指针操作 if (!vg && !*use_previous_vg) { // use_previous_vg = 0x00, 操作空指针 log_warn("WARNING: Failed to read metadata text at %llu off %llu size %llu VG %s on %s", (unsigned long long)(area->start + rlocn->offset), (unsigned long long)rlocn->offset, (unsigned long long)rlocn->size, vgname, dev_name(area->dev)); return NULL; } 【对外部(配置、头文件、外部函数)是否有影响】 否
<h3>优先级:</h3>次要 <h3>详细描述:</h3> 【OS版本】:被测的版本信息 5.10.0-60.18.0.50.h355.kasan.openEuler-22.03-LTS.x86_64 lvm2-2.03.14-4.h6.openEuler-22.03-LTS.x86_64 【测试类型】 长稳压力测试 【测试步骤】 1.ramdisk组thinpool后不断创建和删除卷,同时mkfs和tune2fs并发执行 2.周期注入故障然后恢复,再重建thinpool 3,长时间重复,有结果1 【结果输出】 出现pvscan的segfault Reading symbols from /usr/sbin/pvscan... Reading symbols from /usr/lib/debug//usr/sbin/lvm-2.03.14-4.h6.openEuler-22.03-LTS.x86_64.debug... [New LWP 2682530] [Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib64/libthread_db.so.1". Core was generated by `pvscan --cache'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431 431 format_text/format-text.c: No such file or directory. Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34-70.h12.openEuler-22.03-LTS.x86_64 libaio-0.3.112-2.h1.openEuler-22.03-LTS.x86_64 libblkid-2.37.2-5.h4.openEuler-22.03-LTS.x86_64 libcap-2.61-1.openEuler-22.03-LTS.x86_64 libgcrypt-1.9.4-1.h1.openEuler-22.03-LTS.x86_64 libgpg-error-1.43-1.openEuler-22.03-LTS.x86_64 libselinux-3.3-1.openEuler-22.03-LTS.x86_64 libsepol-3.3-2.h2.openEuler-22.03-LTS.x86_64 lz4-1.9.3-2.h1.openEuler-22.03-LTS.x86_64 ncurses-libs-6.3-2.h1.openEuler-22.03-LTS.x86_64 pcre2-10.39-1.openEuler-22.03-LTS.x86_64 readline-8.1-1.openEuler-22.03-LTS.x86_64 systemd-libs-249-16.h5.openEuler-22.03-LTS.x86_64 (gdb) bt #0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431 #1 0x000055dd6c0356ac in _vg_read_raw (cmd=<optimized out>, fid=0x55dd6df41450, vgname=<optimized out>, mda=0x55dd6df32180, vg_fmtdata=<optimized out>, use_previous_vg=0x0) at format_text/format-text.c:466 #2 0x000055dd6bfda782 in _online_devs (cmd=cmd@entry=0x55dd6de309e0, do_all=do_all@entry=1, pvscan_devs=pvscan_devs@entry=0x7ffd05527a50, pv_count=pv_count@entry=0x7ffd05527a40, complete_vgnames=complete_vgnames@entry=0x7ffd05527a30) at pvscan.c:1342 #3 0x000055dd6bfdc92a in _pvscan_cache_all (argc=0, argv=<optimized out>, complete_vgnames=0x7ffd05527a30, cmd=0x55dd6de309e0) at pvscan.c:1661 #4 pvscan_cache_cmd (cmd=0x55dd6de309e0, argc=<optimized out>, argv=<optimized out>) at pvscan.c:1939 #5 0x000055dd6bfc71cb in lvm_run_command (cmd=cmd@entry=0x55dd6de309e0, argc=<optimized out>, argc@entry=2, argv=<optimized out>, argv@entry=0x7ffd05527e98) at lvmcmdline.c:3278 #6 0x000055dd6bfc8f5e in lvm2_main (argc=2, argv=0x7ffd05527e98) at lvmcmdline.c:3811 #7 0x00007fead4dd5270 in ?? () from /usr/lib64/libc.so.6 #8 0x00007fead4dd531c in __libc_start_main () from /usr/lib64/libc.so.6 #9 0x000055dd6bfa20c5 in _start () 【预期输出】 无异常 【测试代码&初步定位结论】 待定位,core文件保留 <h3>原因分析:</h3> 【是否新引入rpm包,是否进行了安全编译选项扫描】 否 【定位分析】(有效问题请“先对原有功能进行描述,重点描述与当前故障现象相关的技术点、以及缺陷出现的触发条件、错误出现的函数等”;非问题“需要澄清技术细节,描述技术实现原理以及当前现象合理性的解释”;重复问题请“说明重复问题单号”) 问题栈#0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431431 if (!vg && !*use_previous_vg) { // 异常点, use_previous_vg = 0x00Missing separate debuginfos, use: dnf debuginfo-install glibc-2.34-70.h26.openEuler-22.03-LTS.x86_64 libaio-0.3.112-2.h1.openEuler-22.03-LTS.x86_64 libblkid-2.37.2-5.h7.openEuler-22.03-LTS.x86_64 libcap-2.61-1.h1.openEuler-22.03-LTS.x86_64 libgcrypt-1.9.4-1.h4.openEuler-22.03-LTS.x86_64 libgpg-error-1.43-1.openEuler-22.03-LTS.x86_64 libselinux-3.3-1.openEuler-22.03-LTS.x86_64 libsepol-3.3-2.h2.openEuler-22.03-LTS.x86_64 lz4-1.9.3-2.h1.openEuler-22.03-LTS.x86_64 ncurses-libs-6.3-2.h2.openEuler-22.03-LTS.x86_64 pcre2-10.39-1.h3.openEuler-22.03-LTS.x86_64 readline-8.1-1.openEuler-22.03-LTS.x86_64 systemd-libs-249-16.h31.openEuler-22.03-LTS.x86_64 xz-libs-5.2.5-2.h1.openEuler-22.03-LTS.x86_64(gdb) bt#0 0x000055dd6c035550 in _vg_read_raw_area (fid=fid@entry=0x55dd6df41450, vgname=0x55dd6c0f914e "", area=area@entry=0x55dd6df34cf0, vg_fmtdata=0x0, use_previous_vg=use_previous_vg@entry=0x0, precommitted=precommitted@entry=0, primary_mda=1, cmd=<optimized out>) at format_text/format-text.c:431#1 0x000055dd6c0356ac in _vg_read_raw (cmd=<optimized out>, fid=0x55dd6df41450, vgname=<optimized out>, mda=0x55dd6df32180, vg_fmtdata=<optimized out>, use_previous_vg=0x0) at format_text/format-text.c:466 //传入的use_previous_vg = 0x00, 后续也没有赋值或者修改#2 0x000055dd6bfda782 in _online_devs (cmd=cmd@entry=0x55dd6de309e0, do_all=do_all@entry=1, pvscan_devs=pvscan_devs@entry=0x7ffd05527a50, pv_count=pv_count@entry=0x7ffd05527a40, complete_vgnames=complete_vgnames@entry=0x7ffd05527a30) at pvscan.c:1342#3 0x000055dd6bfdc92a in _pvscan_cache_all (argc=0, argv=<optimized out>, complete_vgnames=0x7ffd05527a30, cmd=0x55dd6de309e0) at pvscan.c:1661#4 pvscan_cache_cmd (cmd=0x55dd6de309e0, argc=<optimized out>, argv=<optimized out>) at pvscan.c:1939#5 0x000055dd6bfc71cb in lvm_run_command (cmd=cmd@entry=0x55dd6de309e0, argc=<optimized out>, argc@entry=2, argv=<optimized out>, argv@entry=0x7ffd05527e98) at lvmcmdline.c:3278#6 0x000055dd6bfc8f5e in lvm2_main (argc=2, argv=0x7ffd05527e98) at lvmcmdline.c:3811#7 0x00007fead4dd5270 in ?? () from /usr/lib64/libc.so.6#8 0x00007fead4dd531c in __libc_start_main () from /usr/lib64/libc.so.6#9 0x000055dd6bfa20c5 in _start ()(gdb) p vg$1 = (struct volume_group *) 0x0(gdb) p use_previous_vg$2 = (unsigned int *) 0x0(gdb) 出现问题的代码 vg = text_read_metadata(fid, NULL, vg_fmtdata, use_previous_vg, area->dev, primary_mda, (off_t) (area->start + rlocn->offset), (uint32_t) (rlocn->size - wrap), (off_t) (area->start + MDA_HEADER_SIZE), wrap, calc_crc, rlocn->checksum, &when, &desc); //测试时,内核注入故障,导致读取元数据失败,vg 返回为NULL,所以触发了后续空指针操作 if (!vg && !*use_previous_vg) { // use_previous_vg = 0x00, 操作空指针 log_warn("WARNING: Failed to read metadata text at %llu off %llu size %llu VG %s on %s", (unsigned long long)(area->start + rlocn->offset), (unsigned long long)rlocn->offset, (unsigned long long)rlocn->size, vgname, dev_name(area->dev)); return NULL; } 【对外部(配置、头文件、外部函数)是否有影响】 否
评论 (
1
)
登录
后才可以发表评论
状态
已完成
待办的
已挂起
修复中
已确认
已完成
已验收
已取消
负责人
未设置
标签
sig/Storage
未设置
项目
未立项任务
未立项任务
里程碑
openEuler-22.09-round-2
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(2)
1
https://gitee.com/src-openeuler/lvm2.git
git@gitee.com:src-openeuler/lvm2.git
src-openeuler
lvm2
lvm2
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册