2509版本bmcv2升级v3升级成功后概率性回退版本

问题描述

产线上100台v2升级v3的机器上,升级过程中没有报错,但是有5台从发货版本回退到了过渡包的版本。

根据日志看起来像是bmc.kepler.maca服务缺失。

2026-04-16 01:43:18.220787 network_adapter ERROR: ncsi_channel.lua(172): ncsi cmd ctrl enable channel failed, package_id = 1, channel_id = 3, eth_name = eth0
2026-04-16 01:43:18.221184 network_adapter ERROR: ncsi_core.lua(64): ncsi: Enable channel failed.
2026-04-16 01:43:18.221640 network_adapter NOTICE: ncsi_core.lua(120): ncsi: Disable channel TX. package_id = 1, channel_d = 3, eth_name = eth0
2026-04-16 01:43:18.976238 network_adapter ERROR: ncsi_channel.lua(172): ncsi cmd ctrl disable channel tx failed, package_id = 1, channel_id = 3, eth_name = eth0
2026-04-16 01:43:18.977548 network_adapter ERROR: ncsi_core.lua(124): ncsi: Disable channel TX failed.
2026-04-16 01:43:20.633283 cli ERROR: account.lua(540): get customer failed, err:The name bmc.kepler.maca was not provided by any .service files
2026-04-16 01:43:21.084996 network_adapter NOTICE: ncsi_info.lua(211): ncsi: NC info init.(Mac = 20:22:01:53:A1:9E, VlanState = 0, VlanId = 0)
2026-04-16 01:43:21.184917 cli ERROR: account.lua(146): Invalid user name(Administrator)
2026-04-16 01:43:21.189089 cli ERROR: message.lua(80): the message name:org.freedesktop.DBus.Error.ServiceUnknown doesn’t exist, return InternalError
2026-04-16 01:43:21.193625 cli ERROR: account.lua(540): get customer failed, err:The name bmc.kepler.maca was not provided by any .service files
2026-04-16 01:43:21.198313 cli ERROR: ipmcget.lua(47): execute ipmcget failed, [string " context=… or {}…"]:6: attempt to get length of global ‘time_list_expand’ (a userdata value)
2026-04-16 01:43:22.220442 iam ERROR: session_service.lua(215): update cli online session error nil
2026-04-16 01:43:23.007954 SSDP NOTICE: mdb_monitor(311): GetSubObjects(maca) failed, error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.maca was not provided by any .service files
2026-04-16 01:43:26.125906 alarm_monitor NOTICE: alarm_monitor_app.lua(121): Total Alarms: 0
2026-04-16 01:43:26.126218 alarm_monitor NOTICE: alarm_monitor_app.lua(169): No alarms found in the list (cleared or empty)
bios ERROR: bios file not exist
1970-01-01 00:00:18.302867 metric_analyzer NOTICE: File size is equal to given size

以下是相关日志,

app.log.1.gz.txt (340.5 KB)

app.log.txt (485.6 KB)

答案内容由AI生成,仅供参考:

总结

项目 结论
问题性质 软件缺陷导致的关键服务注册失败
影响范围 OpenUBMC 2509 版本在特定环境下升级后的首次启动
根本原因 maca服务未注册 → 启动检查失败 → 触发自动回退机制
推荐方案 立即重启BMC → 长期迁移至OpenUBMC 2512版本
是否可规避 可通过升级版本和增强容错机制彻底规避

:light_bulb: 建议行动优先级
1. 对受影响设备执行reboot bmc
2. 规划向 OpenUBMC 2512 版本迁移
3. 在构建流程中加入maca服务存在性验证环节

点击此处查看详细分析解答

2509版本 BMC V2升级V3后概率性回退问题分析与解决方案

问题概述

在使用OpenUBMC 2509版本进行从iBMC V2到V3的升级过程中,出现了概率性版本回退的问题:在产线100台设备中,有5台设备虽然升级过程未报错,但最终从发货版本回退到了过渡包版本。核心日志显示系统存在bmc.kepler.maca服务缺失问题,导致多个组件无法正常工作。


关键日志分析

1. 核心错误:bmc.kepler.maca服务未注册

2026-04-16 01:43:20.633283 cli ERROR: account.lua(540): get customer failed, err:The name bmc.kepler.maca was not provided by any .service files
...
2026-04-16 01:43:23.007954 SSDP NOTICE: GetSubObjects(maca) failed, error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.maca was not provided by any .service files

问题定位

  • bmc.kepler.maca 是一个关键的D-Bus服务,由maca(Management and Control Agent)模块提供。
  • 该服务未能正确注册到D-Bus系统中,说明 maca组件未成功启动或初始化失败
  • 由于该服务缺失,依赖它的CLI、账户管理、SSDP等组件均出现异常。

2. 网络控制子系统(NC-SI)通信失败

2026-04-16 01:43:18.220787 network_adapter ERROR: ncsi_cmd_ctrl enable channel failed
...
2026-04-16 01:43:18.977548 network_adapter ERROR: ncsi: Disable channel TX failed
  • 表明 NC-SI协议栈初始化异常,可能与底层驱动、PHY状态或固件兼容性有关。
  • 虽然不是导致回退的直接原因,但反映系统运行环境不稳定。

3. 账户与会话系统异常

2026-04-16 01:43:21.184917 cli ERROR: Invalid user name(Administrator)
2026-04-16 01:43:22.220442 iam ERROR: update cli online session error nil
  • 用户认证失败、会话更新异常,进一步验证了 IAM(Identity and Access Management)系统因依赖服务缺失而无法正常工作。

根本原因分析

结合知识库和日志信息,得出以下结论:

:white_check_mark: 根本原因

OpenUBMC 2509版本中存在软件缺陷,导致maca服务在某些环境下未能正确加载或注册为D-Bus服务,引发系统关键组件链式失效;当系统检测到核心服务异常时触发自动回退机制。

详细分析如下:

原因维度 分析依据
版本缺陷 已知 OpenUBMC 2509 存在日志格式化函数对空值处理不当的问题(见知识库文档1),表明该版本存在多个潜在边界条件处理缺陷。
服务依赖关系断裂 maca 服务是系统基础代理模块,负责协调IPMI命令、设备管理、对象注册等功能。其未注册将导致cliaccountSSDP等上层服务调用失败。
启动检查失败→触发回退 BMC升级后首次启动时执行StartupCheck,若发现关键组件(如maca)未就绪,会被判定为“启动失败”,触发三重启动失败自动切分区机制(知识库Q9)。
概率性发生 因环境差异(如硬件初始化时序、温度、供电波动)导致部分设备未能成功加载服务,呈现低概率特征(5/100)。

解决方案建议

一、短期恢复措施

:white_check_mark: 1. 重启BMC服务(已验证有效)

# 尝试重启BMC核心服务
reboot bmc
  • 依据:用户“昆仑太科_安阳阳”曾报告通过Restart BMC解决类似临时状态异常问题。
  • 作用:清除临时状态,重新触发服务注册流程,可能使maca服务恢复正常。

:white_check_mark: 2. 手动验证并强制清除升级状态

# 检查是否残留升级标志
busctl --user get-property bmc.kepler.bmc_upgrade /bmc/kepler/UpdateService/UpdateMgmt bmc.kepler.UpdateService.UpdateMgmt Upgrading_Flag

# 若为true,尝试清零(需系统支持)
busctl --user set-property bmc.kepler.bmc_upgrade /bmc/kepler/UpdateService/UpdateMgmt bmc.kepler.UpdateService.UpdateMgmt Upgrading_Flag b false

二、长期修复方案

:hammer_and_wrench: 1. 升级至更稳定版本(推荐)

当前环境使用 OpenUBMC2509,而知识库明确指出:

  • 2512版本已修复多个传感器及系统稳定性问题
  • 建议升级至 2512或更高版本

操作建议

  • 使用官方发布的 OpenUBMC 2512 release包 重新构建固件
  • 验证在相同环境下是否仍出现maca服务丢失问题

:hammer_and_wrench: 2. 检查并修复maca服务注册机制

可能问题点

  • maca.service 文件缺失或路径错误
  • init.lua 中未正确导出bmc.kepler.maca服务名
  • 服务启动超时被系统终止

排查步骤

# 登录后检查是否有maca相关.service文件
find /lib/systemd/system/ -name "*maca*"

# 查看D-Bus注册的服务列表
busctl --user list-names | grep maca

:hammer_and_wrench: 3. 增强启动时序容错能力

  • maca服务启动脚本中增加重试机制
  • 延长StartupCheck等待时间,避免因短暂延迟导致误判
  • 添加日志打印确认服务注册成功与否

三、预防与监控建议

措施 说明
完善升级前检查清单 升级前确保所有关键服务(maca、iam、bmc_upgrade)均处于正常运行状态
启用详细日志级别 设置LOG=debug收集更完整的启动日志,便于定位服务加载失败原因
增加服务健康检测脚本 在升级后自动检测bmc.kepler.maca是否存在,失败则报警
统一产线构建环境 确保所有设备使用完全一致的固件包和构建配置(签名、渠道、依赖库)

总结

项目 结论
问题性质 软件缺陷导致的关键服务注册失败
影响范围 OpenUBMC 2509 版本在特定环境下升级后的首次启动
根本原因 maca服务未注册 → 启动检查失败 → 触发自动回退机制
推荐方案 立即重启BMC → 长期迁移至OpenUBMC 2512版本
是否可规避 可通过升级版本和增强容错机制彻底规避

:light_bulb: 建议行动优先级
1. 对受影响设备执行reboot bmc
2. 规划向 OpenUBMC 2512 版本迁移
3. 在构建流程中加入maca服务存在性验证环节

如需进一步诊断,请提供完整的app.logframework.log以及/lib/systemd/system/目录下的服务文件列表。

framework.log里面会有哪些组件异常启动的信息,看看是哪些组件有异常

1970-01-01 00:01:25.091492 maca ERROR: init.lua(147): [ssdp]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.ssdp was not provided by any .service files, check count: 1
1970-01-01 00:01:25.299236 maca ERROR: init.lua(147): [product_mgmt]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.product_mgmt was not provided by any .service files, check count: 1
1970-01-01 00:01:25.890533 maca ERROR: init.lua(147): [ddns]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.ddns was not provided by any .service files, check count: 1
1970-01-01 00:01:26.287071 maca ERROR: init.lua(147): [rmcpd]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.rmcpd was not provided by any .service files, check count: 1
1970-01-01 00:01:26.799484 maca ERROR: init.lua(147): [license]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.license was not provided by any .service files, check count: 1
1970-01-01 00:01:28.501767 maca ERROR: init.lua(147): [event_policy]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.event_policy was not provided by any .service files, check count: 1
1970-01-01 00:01:29.007477 maca ERROR: init.lua(147): [remote_console]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.remote_console was not provided by any .service files, check count: 1
1970-01-01 00:01:40.133162 maca ERROR: init.lua(147): [ssdp]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.ssdp was not provided by any .service files, check count: 2
1970-01-01 00:01:40.348055 maca ERROR: init.lua(147): [product_mgmt]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.product_mgmt was not provided by any .service files, check count: 2
1970-01-01 00:01:40.953084 maca ERROR: init.lua(147): [ddns]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.ddns was not provided by any .service files, check count: 2
1970-01-01 00:01:41.334540 maca ERROR: init.lua(147): [rmcpd]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.rmcpd was not provided by any .service files, check count: 2
1970-01-01 00:01:42.120180 maca ERROR: init.lua(147): [license]StartupCheck failed, error: org.freedesktop.DBus.Error.ServiceUnknown: The name bmc.kepler.license was not provided by any .service files, check count: 2

相关日志:

framework.log.txt (982.3 KB)

我看日志重启的次数不少,哪次重启是回退了?

应该是最后两次重启,app.log.1里面我升级完NK-1210_BMC_V55.09.00.21._002_202601141638-debug.hpm这个包,直到到app.log里面,应该是自动重启了2次。从55.09.00.21版本然后回退到了5.07.00.01版本(过渡包)

55.09.00.21版本是什么版本

55.09.00.21版本是25.09版本上改的

能发下完整的一键收集日志吗

dump_info.tar.gz.txt (2.5 MB)

收到,我先分析下日志