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)

收到,我先分析下日志

请问现在有进展了吗

请问有正常升级成功不回退的日志吗?
“55.09.00.21版本是25.09版本上改的”,这个改动是什么,不带这个改动升级会回退吗

改动的组件比较多了,但是主要是大部分机器都是可以正常升级成功的,只有百分之5的机器是一直会升级后回退版本。

我认为应该不是改动导致的原因。现在现象是能升级上去的机器一直可以正常升级,升级会回退的机器,升级会一直回退版本。

openUBMC_20260506-0553.tar.gz (2.4 MB)

此日志是可以升级成功不回退的机器的日志

主要是我发现libmc4lua组件报错的行号对不上

会不会是查看源码版本不一致导致的行号对不上,我们使用的版本是 libmc4lua/1.90.92@openubmc/stable,同时这个是闭源组件,我们也没有办法修改,修改其他组件会影响到闭源组件打印信息内容,这个应该不太可能吧

[ 57.928706] [I2C-03-RT<-5|-5>] M<0x50|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 58.332821] 41,2026-05-13 06:28:59,2615,msg_sec_module_cmd_cpy_to_user,523,msg copy_to_user user data error 8
[ 58.349175] 42,2026-05-13 06:28:59,2615,msg_scm3_ioctl,613,msg cmd(0xc0047301) handle error!
[ 59.020939] 43,2026-05-13 06:28:59,28,hw_get_hard_lock,79,hw_lock(0x2) is locked by M3
[ 59.029035] 44,2026-05-13 06:29:00,28,hw_acquire_hard_lock,141,hardware lock(2) is’t locked by A55(-1)
[ 59.154477] 45,2026-05-13 06:29:00,6,hw_get_hard_lock,79,hw_lock(0x2) is locked by M3
[ 59.162461] 46,2026-05-13 06:29:00,6,hw_acquire_hard_lock,141,hardware lock(2) is’t locked by A55(-1)
[ 59.244681] ext2 filesystem being remounted at /dev/shm/chroot/2660/opt/bmc/pram supports timestamps until 2038-01-19 (0x7fffffff)
[ 59.333004] 47,2026-05-13 06:29:00,434,hw_get_hard_lock,79,hw_lock(0x2) is locked by M3
[ 59.341194] 48,2026-05-13 06:29:00,434,hw_acquire_hard_lock,141,hardware lock(2) is’t locked by A55(-1)
[ 59.350779] ext4 filesystem being remounted at /dev/shm/chroot/2660/data/backup supports timestamps until 2038-01-19 (0x7fffffff)
[ 59.375110] 49,2026-05-13 06:29:00,434,hw_get_hard_lock,79,hw_lock(0x2) is locked by M3
[ 59.383161] 50,2026-05-13 06:29:00,434,hw_acquire_hard_lock,141,hardware lock(2) is’t locked by A55(-1)
[ 59.526938] EXT4-fs (mmcblk0gp2): mounted filesystem 4cec7a0e-4c62-4db1-9998-e266fec0efef ro with ordered data mode. Opts: (null)
[ 59.667924] EXT4-fs (mmcblk0gp2): unmounting filesystem 4cec7a0e-4c62-4db1-9998-e266fec0efef.
[ 60.919034] [I2C-03-RT<-5|-5>] M<0x51|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 61.129758] [I2C-03-RT<-5|-5>] M<0x50|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x510|0x0>
[ 65.145291] [I2C-03-RT<-5|-5>] M<0x51|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 65.349228] [I2C-03-RT<-5|-5>] M<0x50|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 67.567355] [I2C-08-RT<-5|-5>] M<0x21|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 67.608298] [I2C-08-RT<-5|-5>] M<0x47|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 74.476944] 51,2026-05-13 06:29:15,2705,mctp_reset,1477,reset mctp ok!
[ 74.487363] 52,2026-05-13 06:29:15,2705,mctp_dereset,1501,dereset mctp ok!
[ 78.142006] FAT-fs (mmcblk0p5): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 89.233042] [I2C-03-RT<-5|-5>] M<0x51|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 89.436101] [I2C-03-RT<-5|-5>] M<0x50|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 94.104804] [I2C-08-RT<-5|-5>] M<0x21|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 94.922562] [I2C-08-RT<-5|-5>] M<0x21|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
2026-05-13 06:29:36.781482 hwdiscovery NOTICE: hwcomponent.lua(311): [self-discovery] name: Connector_Fan5SingleSensor_010103, position: 01010305, current: 1, previous: 0,uptime: 96 s
[ 96.147701] [I2C-08-RT<-5|-5>] M<0x21|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
2026-05-13 06:29:37.211947 hwdiscovery NOTICE: parser_work.lua(78): position: 01010305, process sr data successfully, uptime: 97 s, cost: 30ms
[ 96.557177] [I2C-08-RT<-5|-5>] M<0x47|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x510|0x0>
[ 96.978959] [I2C-08-RT<-5|-5>] M<0x47|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 97.823278] [I2C-08-RT<-5|-5>] M<0x47|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 99.644033] [I2C-08-RT<-5|-5>] M<0x21|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 99.841564] [I2C-08-RT<-5|-5>] M<0x47|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 121.273837] [I2C-03-RT<-5|-5>] M<0x51|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 121.480271] [I2C-03-RT<-5|-5>] M<0x50|0x1|0x0|1|10> L<1|1|0> C<1|0|1> E<0x801|0x0|0x0|0x1> I<0x0|0x710|0x0>
[ 129.270350] 53,2026-05-13 06:30:10,3454,init_btc_mode,434,btc mode(2)
[ 129.278540] 54,2026-05-13 06:30:10,3454,btc_lb_int_pin_init,439,pin(63) is reused as gpio
[ 129.298531] 55,2026-05-13 06:30:10,ISR,btc_irq_storm_check,266,Trigger interrupt storm, closes pin(63) interrupt, remain(99/100)s)
[ 130.295129] 56,2026-05-13 06:30:11,ISR,btc_irq_storm_check,266,Trigger interrupt storm, closes pin(61) interrupt, remain(1/100)s)
[ 130.307875] ####dump test 0####
[ 130.311039] btc dev mode:2
[ 130.313742] btc priv:0 0
[ 130.316361] btc priv param:61 63
[ 130.319591] ####dump test 1####
[ 130.322724] btc dev mode:2
[ 130.325455] btc priv:1 0
[ 130.327986] btc priv param:61 63
[ 130.331224] 57,2026-05-13 06:30:11,3454,btc_probe,555,btc init ok!
Serial Probe!
66
U-Boot Runing…

Boot Strap:0000FAFE
Reboot Control:00000001
Boot from Area 0(boot_cnt0[26] boot_cnt1[0])
Serial Probe!
66Core: 3 devices, 3 uclasses
MMC:
Loading Environment from nowhere… OK
In: serial
Out: serial
Err: serial
Net: No ethernet found.
blk_probe
detect ext4img info: block cnt:385024,block size:1024
log2blksz 10
3413056 bytes read in 211 ms (15.4 MiB/s)
13278 bytes read in 6 ms (2.1 MiB/s)
5242880 bytes read in 284 ms (17.6 MiB/s)

Booting kernel from Legacy Image…

Image Name: linux
Image Type: Linux Kernel Image (uncompressed)
Verifying Checksum … OK

Flattened Device Tree blob.

Booting using the fdt blob.
Working FDT set to 87400000
Loading Kernel Image to 87480000
Using Device Tree in place.
Working FDT set to 87400000

这是一段自动重启的日志,升级v3后会这样重启三次后,回退到原来的版本。我用了25.03的版本和25.09的版本都是这种现象。

请问有后续结果吗。我看我这个升级v3后会重启三次后,回退到原来的版本,不止我一家有出现过,其他家也有类似的现象,好像后续也没有结果出来。

这个问题先找下模组BMC支持的人员