更新ID(KYUA-202412-1055)
- 更新简述:
- arpcheck组件增加重复探测功能
- 影响操作系统版本:
- 银河麒麟高级服务器操作系统 V10 SP3 2403
- 更新类型:
- 功能增强
- 发布时间:
- 2024-12-04
- 更新描述:
- 影响软件详情(产品名称 对应架构 软件包 修复版本)
银河麒麟高级服务器操作系统 V10 SP3 2403 loongarch64 initscripts 10.04-4.p03.a.ky10
银河麒麟高级服务器操作系统 V10 SP3 2403 aarch64,x86_64 initscripts 10.04-4.p03.ky10
详细介绍
1.问题复现方法:
(1)新建bond接口,bond模式为Mode4(802.3ad);
(2)停止NetwokManager服务;
(3)使用network服务进行网络管理,使用systemctl restart network重启网络服务;
(4)使用echo $? 命令查看返回结果;
(5)有较低概率发生命令返回结果不为0的情况,network服务重启失败;
2.问题分析结果:
(1)查看系统日志,network服务有报错,对应的代码在/etc/sysconfig/network-scripts/ifup-eth文件中,由于arping命令调用sendto函数返回值不为0导致报错。
(2)在内核bond_3ad_xor_xmit函数中,如果当前没有可用的slave设备可以发送,则会执行bond_tx_drop,并返回NET_XMIT_DROP。
(3)在驱动设置完bond设备的Link状态后,调度延迟工作队列到工作队列得到执行,这部分会有调度延迟,具体和系统当前负载有关。另外rtnl_lock是个全局的互斥锁,如果系统有其他进程刚好在持有这个锁操作网卡设备,这个地方很可能会获取锁失败,至少会再延迟10ms,才会去完成更新slave_arr指针。而在slave_arr指针完成更新之前,这个时候通过bond接口去发送报文就会返回-1。
(4)为解决上述问题,修改核外组件ifup-eth脚本,将ARPCHECK的逻辑改为: 如果bond设备发送ARP失败,则延迟0.5秒后重新尝试ARP探测; 如果超过5秒且ARP探测请求仍不成功,则返回错误码并退出。
3.补丁及下载地址:
从软件仓库更新
4.修复和更新方法:
银河麒麟高级服务器操作系统V10 SP3 2403需要升级到network-scripts-10.04-4.p03或以上版本。
更新软件包后需重启network服务。。