登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情~
代码拉取完成,页面将自动刷新
仓库状态说明
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
8
Star
0
Fork
18
src-openEuler
/
mdadm
关闭
代码
Issues
0
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
开发画像分析
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
cifs用例执行完后产生core日志
已完成
#I68G5I
缺陷
peulerosci
创建于
2023-01-03 11:23
<h3>优先级:</h3>次要 <h3>详细描述:</h3> 【OS版本】 openEuler-22.03-LTS-_basic_x86 【测试类型】 安全性测试 【测试步骤】 1、执行用例:testEL_cifsclient_SCEN.001 <table> <tbody> <tr> <td> 预置条件 precast_condition: </td> <td> raid场景大量并发随机小IO过程中,拔插raid1的1块硬盘,触发raid1同步 </td> <td> 预期结果 result: </td> <td> 环境不会发生复位。 </td> </tr> <tr> <td> 测试步骤 test_procedure: </td> <td> </td> </tr> <tr> <td> 备注 design_demand: </td> <td> raid场景大量并发随机小IO过程中,拔插raid1的1块硬盘,触发raid1同步 </td> </tr> </tbody> </table> 用例代码: ETS_LOG_DEBUG "pre_test" yum install -y samba samba-client samba-common useradd $USERNAME && cp /etc/sudoers /etc/sudoers.bak sed -i 's/# \?%wheel/ %wheel/g' /etc/sudoers usermod -aG wheel $USERNAME echo -e "$PASSWORD $PASSWORD" | smbpasswd -a $USERNAME systemctl start smb.service systemctl stop firewalld getenforce | grep Enforcing && { selinux_flag=1 setenforce 0 } sed -i "s/dev_name1=.*/dev_name1=\/dev\/${dev_name1}/g" remote_test.sh sed -i "s/dev_name2=.*/dev_name2=\/dev\/${dev_name2}/g" remote_test.sh sed -i "s/dev_name3=.*/dev_name3=\/dev\/${dev_name3}/g" remote_test.sh sed -i "s/dev_name4=.*/dev_name4=\/dev\/${dev_name4}/g" remote_test.sh sed -i "s/ETS_LOCAL_IP=.*/ETS_LOCAL_IP=${ETS_LOCAL_IP}/g" remote_test.sh } # 使用raid盘创建分享,登录大量cifs do_test { ETS_SSHCMD "type mdadm || yum install -y mdadm" for ; do su - $USERNAME -c "mkdir -p /home/$USERNAME/test$i" \ || add_failure "mkdir test$i failed" done fio_tool=fio_x86 uname -m | grep aarch64 && fio_tool=fio_arm ETS_SSHSCP ./remote_test.sh "${ETS_REMOTE_USER_ROOT}"@"${ETS_REMOTE_IP}":/opt "${ETS_REMOTE_PASSWD_ROOT}" ETS_SSHSCP "$fio_tool" "${ETS_REMOTE_USER_ROOT}"@"${ETS_REMOTE_IP}":/usr/bin/fio "${ETS_REMOTE_PASSWD_ROOT}" ETS_SSHCMD "TMOUT=0;sh -x /opt/remote_test.sh" \ || add_failure "remote_test execing failed" } 【结果输出】 具体core记录 [LOCAL: 9.82.178.192] 225a226 > smb.service loaded active running Samba SMB Daemon [REMOTE: 9.82.231.4] 244a245,247 > Tue 2022-12-06 20:09:48 CST 67542 0 0 SIGSEGV present /usr/sbin/mdadm 44.2K > Tue 2022-12-06 20:09:48 CST 67540 0 0 SIGSEGV present /usr/sbin/mdadm 44.2K > Tue 2022-12-06 20:10:06 CST 70538 0 0 SIGSEGV present /usr/sbin/mdadm 44.1K 682c685 < ├─sdc1 8:33 0 1K 0 part --- > ├─sdc1 8:33 0 512B 0 part openEuler-22.03-LTS__basic_x86/2022-12-06_16-39-09/result_log/package_test/testEL_cifsclient_SCEN.001/ openEuler-22.03-LTS__basic_x86/2022-12-06_16-39-09/result_log/package_test/testEL_cifsclient_SCEN.001/coredump_9.82.231.4.tgz 【预期输出】 1、无core文件产生 【测试代码&初步定位结论】 NA,需要开发进行分析 <h3>原因分析:</h3> 【是否新引入rpm包,是否进行了安全编译选项扫描】 是 【定位分析】 用例将md设备分了60个分区,在连续创建分区中,针对某个已经分配好的分区会产生如下大量的udev事件。 UDEV [20045.977810] add /devices/virtual/block/md1/md1p1 UDEV [20045.978563] remove /devices/virtual/block/md1/md1p1 UDEV [20046.002080] add /devices/virtual/block/md1/md1p1 UDEV [20046.002573] remove /devices/virtual/block/md1/md1p1 UDEV [20046.029323] add /devices/virtual/block/md1/md1p1 UDEV [20046.029909] remove /devices/virtual/block/md1/md1p1 UDEV [20046.055679] add /devices/virtual/block/md1/md1p1 UDEV [20046.056483] remove /devices/virtual/block/md1/md1p1 UDEV [20046.085930] add /devices/virtual/block/md1/md1p1 UDEV [20046.087211] remove /devices/virtual/block/md1/md1p1 UDEV [20046.122136] add /devices/virtual/block/md1/md1p1 UDEV [20046.153785] change /devices/virtual/block/md1/md1p1 UDEV [20046.155035] remove /devices/virtual/block/md1/md1p1 UDEV [20046.181993] add /devices/virtual/block/md1/md1p1 UDEV [20046.217334] change /devices/virtual/block/md1/md1p1 .... 在中间过程中,change和add事件均会触发mdadm --detail --export /dev/md1p1等命令 在中间并发过程中,会有remove事件,导致fd2devnm读取/sys/dev/block下面的软连接失败返回NULL,作为strcpy参数导致失败。 需要对fd2devnm返回值做一个判定,如果未NULL,函数做失败返回。 【对外部是否有影响】 否
<h3>优先级:</h3>次要 <h3>详细描述:</h3> 【OS版本】 openEuler-22.03-LTS-_basic_x86 【测试类型】 安全性测试 【测试步骤】 1、执行用例:testEL_cifsclient_SCEN.001 <table> <tbody> <tr> <td> 预置条件 precast_condition: </td> <td> raid场景大量并发随机小IO过程中,拔插raid1的1块硬盘,触发raid1同步 </td> <td> 预期结果 result: </td> <td> 环境不会发生复位。 </td> </tr> <tr> <td> 测试步骤 test_procedure: </td> <td> </td> </tr> <tr> <td> 备注 design_demand: </td> <td> raid场景大量并发随机小IO过程中,拔插raid1的1块硬盘,触发raid1同步 </td> </tr> </tbody> </table> 用例代码: ETS_LOG_DEBUG "pre_test" yum install -y samba samba-client samba-common useradd $USERNAME && cp /etc/sudoers /etc/sudoers.bak sed -i 's/# \?%wheel/ %wheel/g' /etc/sudoers usermod -aG wheel $USERNAME echo -e "$PASSWORD $PASSWORD" | smbpasswd -a $USERNAME systemctl start smb.service systemctl stop firewalld getenforce | grep Enforcing && { selinux_flag=1 setenforce 0 } sed -i "s/dev_name1=.*/dev_name1=\/dev\/${dev_name1}/g" remote_test.sh sed -i "s/dev_name2=.*/dev_name2=\/dev\/${dev_name2}/g" remote_test.sh sed -i "s/dev_name3=.*/dev_name3=\/dev\/${dev_name3}/g" remote_test.sh sed -i "s/dev_name4=.*/dev_name4=\/dev\/${dev_name4}/g" remote_test.sh sed -i "s/ETS_LOCAL_IP=.*/ETS_LOCAL_IP=${ETS_LOCAL_IP}/g" remote_test.sh } # 使用raid盘创建分享,登录大量cifs do_test { ETS_SSHCMD "type mdadm || yum install -y mdadm" for ; do su - $USERNAME -c "mkdir -p /home/$USERNAME/test$i" \ || add_failure "mkdir test$i failed" done fio_tool=fio_x86 uname -m | grep aarch64 && fio_tool=fio_arm ETS_SSHSCP ./remote_test.sh "${ETS_REMOTE_USER_ROOT}"@"${ETS_REMOTE_IP}":/opt "${ETS_REMOTE_PASSWD_ROOT}" ETS_SSHSCP "$fio_tool" "${ETS_REMOTE_USER_ROOT}"@"${ETS_REMOTE_IP}":/usr/bin/fio "${ETS_REMOTE_PASSWD_ROOT}" ETS_SSHCMD "TMOUT=0;sh -x /opt/remote_test.sh" \ || add_failure "remote_test execing failed" } 【结果输出】 具体core记录 [LOCAL: 9.82.178.192] 225a226 > smb.service loaded active running Samba SMB Daemon [REMOTE: 9.82.231.4] 244a245,247 > Tue 2022-12-06 20:09:48 CST 67542 0 0 SIGSEGV present /usr/sbin/mdadm 44.2K > Tue 2022-12-06 20:09:48 CST 67540 0 0 SIGSEGV present /usr/sbin/mdadm 44.2K > Tue 2022-12-06 20:10:06 CST 70538 0 0 SIGSEGV present /usr/sbin/mdadm 44.1K 682c685 < ├─sdc1 8:33 0 1K 0 part --- > ├─sdc1 8:33 0 512B 0 part openEuler-22.03-LTS__basic_x86/2022-12-06_16-39-09/result_log/package_test/testEL_cifsclient_SCEN.001/ openEuler-22.03-LTS__basic_x86/2022-12-06_16-39-09/result_log/package_test/testEL_cifsclient_SCEN.001/coredump_9.82.231.4.tgz 【预期输出】 1、无core文件产生 【测试代码&初步定位结论】 NA,需要开发进行分析 <h3>原因分析:</h3> 【是否新引入rpm包,是否进行了安全编译选项扫描】 是 【定位分析】 用例将md设备分了60个分区,在连续创建分区中,针对某个已经分配好的分区会产生如下大量的udev事件。 UDEV [20045.977810] add /devices/virtual/block/md1/md1p1 UDEV [20045.978563] remove /devices/virtual/block/md1/md1p1 UDEV [20046.002080] add /devices/virtual/block/md1/md1p1 UDEV [20046.002573] remove /devices/virtual/block/md1/md1p1 UDEV [20046.029323] add /devices/virtual/block/md1/md1p1 UDEV [20046.029909] remove /devices/virtual/block/md1/md1p1 UDEV [20046.055679] add /devices/virtual/block/md1/md1p1 UDEV [20046.056483] remove /devices/virtual/block/md1/md1p1 UDEV [20046.085930] add /devices/virtual/block/md1/md1p1 UDEV [20046.087211] remove /devices/virtual/block/md1/md1p1 UDEV [20046.122136] add /devices/virtual/block/md1/md1p1 UDEV [20046.153785] change /devices/virtual/block/md1/md1p1 UDEV [20046.155035] remove /devices/virtual/block/md1/md1p1 UDEV [20046.181993] add /devices/virtual/block/md1/md1p1 UDEV [20046.217334] change /devices/virtual/block/md1/md1p1 .... 在中间过程中,change和add事件均会触发mdadm --detail --export /dev/md1p1等命令 在中间并发过程中,会有remove事件,导致fd2devnm读取/sys/dev/block下面的软连接失败返回NULL,作为strcpy参数导致失败。 需要对fd2devnm返回值做一个判定,如果未NULL,函数做失败返回。 【对外部是否有影响】 否
评论 (
1
)
登录
后才可以发表评论
状态
已完成
待办的
已挂起
修复中
已确认
已完成
已验收
已取消
负责人
未设置
标签
sig/Storage
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(2)
1
https://gitee.com/src-openeuler/mdadm.git
git@gitee.com:src-openeuler/mdadm.git
src-openeuler
mdadm
mdadm
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册