服务支持

系统更新

当前位置  >  首页  >  服务支持  >  系统更新

更新ID(KYUA-202409-1094

更新简述:
修复tcp模块listen接口回退问题
影响操作系统版本:
银河麒麟高级服务器操作系统 V10 SP1 银河麒麟高级服务器操作系统 V10 SP2 银河麒麟高级服务器操作系统 V10 SP32303
更新类型:
功能增强
发布时间:
2024-09-14
更新描述:
影响软件详情(产品名称 对应架构 软件包 修复版本) 银河麒麟高级服务器操作系统 V10 SP1 x86_64,aarch64,mips64el kernel 4.19.90-23.51.v2101.ky10 银河麒麟高级服务器操作系统 V10 SP2 x86_64,aarch64 4.19.90-25.43.v2101 银河麒麟高级服务器操作系统 V10 SP3 2303 x86_64,aarch64 ,loongarch 4.19.90-52.41.v2207

详细介绍

1.问题复现方法: 4.19.90-23.33~23.50;4.19.90-25.25~25.42;4.19.90-52.21~52.40内核版本,在调用listen()接口时,如果满足下面两个条件,会出现listen()接口返回值不预期的问题: 1.调用者都主动开启了SO_REUSEADDR; 2.出现如下调用sequence: t1_a时刻: a调用者调用bind()绑定到端口P; t2_a时刻:a调用者开始调用listen()开始监听端口P; t1_b时刻:b调用者调用bind()绑定到相同端口P; t2_b时刻:b调用者开始调用listen()开始监听相同端口P; 只要下面条件成立,就满足第二个条件: t1_a和t1_b两个时刻(不考虑顺序)发生在t2_a和t2_b两个时刻(不考虑顺序)前 这里的含义是:t1_x时刻,两个调用者都用bind()绑定了相同端口P,由于开启了SO_REUSEADDR所以不会在bind阶段报错冲突,t2_x时刻,两个调用者开始监听端口,正常逻辑来看,这里预期应该出现端口冲突,但内核并不会抛出报错而是正常返回,这会使得调用者以为socket正常监听,但实际上业务并不可用。 2.问题分析结果: 这个问题是因为上游社区backport补丁dadd0dcaa67d ("net/ulp: prevent ULP without clone op fromentering the LISTEN status")所引入的,它regression了inet_csk_listen_start()函数中对返回值的初始化,造成返回值出现不预期; 3.补丁及下载地址: 从软件仓库更新 4.修复和更新方法: (用root权限执行以下命令): yum update kernel
上一篇: KYUA-202408-1038 下一篇: 没有了

试用

服务

动态

联系