bmc_core模块“ send rs failed: errno(101)”刷屏问题

问题描述

bmc_core模块“ send rs failed: errno(101)”刷屏问题 1分钟1次

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:OpenUBMC2603

  • 硬件配置:[如 CPU、内存等]

重现步骤

情况1:

1、当前网口在eth2上时,重启BMC

2、重启BMC后,操作切到pcie扩展网口上

3、观察日志必出bmc_core ERROR: net_socket.c(245): eth2: send RS failed, error: 101 打印 1分钟1次

情况2:

1、当前网口在eth0上时,重启BMC

2、重启BMC后,操作切到专用网口上

3、观察日志必出bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101 打印 1分钟1次

期望结果

无日志刷屏

实际结果

有日志刷屏1分钟1次

2026-05-20 12:11:59.365836 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:11:59.365956 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:13:09.843549 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:13:09.843645 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:14:20.953261 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:14:20.953359 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:15:31.324418 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:15:31.324512 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:16:41.816745 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:16:41.816854 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:17:52.357517 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:17:52.357610 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101
2026-05-20 12:19:03.057088 bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
2026-05-20 12:19:03.057205 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101

尝试过的解决方案

分析结论

bmc_core闭源模块处理问题。切换网口后还一直通过启动时的网口发送rs报文。实际dhcp ipv6 ip也依然可以分配到,不清楚此循环任务有何意义。

答案内容由AI生成,仅供参考:
结论与建议

这是一个由 bmc_core 闭源模块 内部处理逻辑缺陷导致的已知问题。该模块在网口切换后未能正确终止或迁移其原有的网络探测任务(发送RS报文),导致该任务通过已失效的旧网口持续失败并刷屏。

建议

  • 联系开源社区或厂商:由于 bmc_core 是闭源模块,用户无法自行修复。建议将此问题的详细重现步骤和日志提交给 OpenUBMC社区BMC固件提供商,请求其修改闭源模块的处理逻辑,确保在网口切换后能够停止发送RS报文的循环任务。
  • 规避:目前此错误日志不影响IPv6功能,在官方修复前,可忽略此日志或将其视为一种信息提示。
点击此处查看详细分析解答

根据您提供的问题描述以及知识库中的相关信息,以下是对 bmc_core 模块“send rs failed: errno(101)”日志刷屏问题 的详细分析。

问题概述

该问题表现为在切换网口后,bmc_core 模块会以 每分钟1次 的频率持续输出类似 send rs failed: errno(101) 的错误日志,造成“日志刷屏”。

重现步骤与关键日志

根据您提供的步骤,该问题在以下两种场景下可以稳定复现:

  1. 情况1(从eth2切换到PCIe扩展网口)

    • 当前网口为 eth2,重启BMC。
    • 重启后将网口切换到 PCIe扩展网口
    • 日志中持续出现 bmc_core ERROR: net_socket.c(245): eth2: send RS failed, error: 101
  2. 情况2(从eth0切换到专用网口)

    • 当前网口为 eth0,重启BMC。
    • 重启后将网口切换到 专用网口
    • 日志中持续出现 bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101

关键日志模式

bmc_core ERROR: net_socket.c(93): eth0 send rs failed: errno(101)
bmc_core ERROR: net_socket.c(245): eth0: send RS failed, error: 101

这两行成对出现,指向 Net_socket.c 源文件中的第 93 行和第 245 行。

根本原因分析

根据知识库中的信息,该问题的根本原因可归纳为以下几点:

  1. 闭源模块行为bmc_core 模块是一个 闭源软件组件,负责管理BMC的网络操作。用户无法访问其源代码进行修改,只能通过厂商或社区反馈问题。
  2. 网口切换后的循环任务:分析结论指出,bmc_core 模块在切换网口后,仍然通过启动时的老网口持续发送 RS (Router Solicitation) 报文
    • 例如:重启时网口是 eth0,切换后使用 专用网口,但 bmc_core 仍通过 eth0 发送RS报文。
    • 由于原网口(如 eth0)在切换后可能处于非活动或逻辑断开状态,导致 send_rs 操作失败,从而触发 errno(101)(通常代表网络不可达)。
  3. 非功能性错误:尽管日志持续报错,但已知该行为 不影响DHCP IPv6地址的分配。这意味着该循环任务可能是一个设计冗余或不必要的后台任务,其报错对实际网络功能无影响,但造成了日志污染。

结论与建议

这是一个由 bmc_core 闭源模块 内部处理逻辑缺陷导致的已知问题。该模块在网口切换后未能正确终止或迁移其原有的网络探测任务(发送RS报文),导致该任务通过已失效的旧网口持续失败并刷屏。

建议

  • 联系开源社区或厂商:由于 bmc_core 是闭源模块,用户无法自行修复。建议将此问题的详细重现步骤和日志提交给 OpenUBMC社区BMC固件提供商,请求其修改闭源模块的处理逻辑,确保在网口切换后能够停止发送RS报文的循环任务。
  • 规避:目前此错误日志不影响IPv6功能,在官方修复前,可忽略此日志或将其视为一种信息提示。

此时Ipversion是怎样设置的,是仅IPv4还是IPv4andIPv6?

IPv4andIPv6

切到 pcie上显示eth2 send失败,这个是写反了还是没有写反

没写反,重启BMC后。切换到其他网口就会有刷屏,必现。

麻烦复现了收集一份完整日志看下

KunLun2280V3_KunLun+2280+V3-167_20260519-1515.tar.gz (3.4 MB)

这个定位到了原因,最新版本修复了,应该不影响功能,后续外出版本会带上