通电开机策略不生效

// 此模板仅供参考,如果不适用可以修改

问题描述

通电开机策略不生效

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:OpenUBMC2606节点的fructrl,提交节点7ea13a2944eb5a0dcf3b9f177b23955bae1f644e

  • 硬件配置:950

重现步骤

  1. 设置通电开机策略为保持上电

  2. 执行AC

  3. 观察业务侧是否上电

期望结果

通电开机策略生效

实际结果

通电开机策略不生效

尝试过的解决方案

回退fructrl组件到260330节点,通电开机策略是生效的

分析结论

似乎与近期改动有关 【048274f29b4a10b28ee5b26d6ed61b43】根据全局属性BmcResetType判断BMC重启类型-fructrl-AtomGit

正常会打印:[System:1]Power restore policy…always-on.

260330节点,正常日志

fructrl NOTICE: powerapi.lua(205): [System:1]pctrl_type=ACCycle, restart_cause=ChassisControlCommand, fruid=0
	Line 6541: 2026-07-06 18:10:24.621688 fructrl NOTICE: powerapi.lua(232): CurrentRestartType=255
	Line 6543: 2026-07-06 18:10:29.886565 fructrl NOTICE: ac_cycle.lua(57): Succeeded in invoking the close method of persistence
	Line 6544: 2026-07-06 18:10:29.887085 fructrl NOTICE: ac_cycle.lua(110): refresh the cache, and then execute ac down
	Line 6545: 2026-07-06 18:10:29.888674 fructrl NOTICE: ac_cycle.lua(113): AC register written value: 1ACWp register written value: 0
	Line 6650: 1970-01-01 08:00:48.759153 fructrl NOTICE: micro_component.lua(157): Startup status has changed,  ==> Starting, uptime:49s, cost 0ms
	Line 6680: 1970-01-01 08:00:49.648452 fructrl NOTICE: persist_client_lib.lua(60): persist client init completed, time taken: 720 ms
	Line 6706: 1970-01-01 08:00:50.603906 fructrl NOTICE: persist_client_lib.lua(60): persist client init completed, time taken: 810 ms
	Line 6707: 1970-01-01 08:00:50.604454 fructrl NOTICE: payload_app.lua(31): [Fructrl] service init
	Line 6708: 1970-01-01 08:00:50.605235 fructrl NOTICE: service_app_base.lua(368): start fructrl service
	Line 6708: 1970-01-01 08:00:50.605235 fructrl NOTICE: service_app_base.lua(368): start fructrl service
	Line 6710: 1970-01-01 08:00:50.674322 fructrl NOTICE: micro_component.lua(157): Startup status has changed, Starting ==> InitCompleted, uptime:51s, cost 1920ms
	Line 6781: 1970-01-01 08:00:52.353623 fructrl NOTICE: object_manage.lua(682): start to fetch hwdiscovery objects
	Line 6942: 2026-07-06 18:12:22.036157 fructrl NOTICE: object_manage.lua(720): fetch hwdiscovery objects completely, took 0 ms, uptime: 57 s
	Line 7049: 2026-07-06 18:12:23.437201 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, count: 4, uptime: 58 s
	Line 7064: 2026-07-06 18:12:23.647620 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: FruCtrl, object name: FruCtrl_1_0_00, position: 00.
	Line 7065: 2026-07-06 18:12:23.648635 fructrl NOTICE: fructrl_obj_mgnt.lua(148): create host 1 object successful
	Line 7066: 2026-07-06 18:12:23.649188 fructrl NOTICE: fructrl.lua(601): [System:1]set fructrl object successfully, uptime: 58s.
	Line 7066: 2026-07-06 18:12:23.649188 fructrl NOTICE: fructrl.lua(601): [System:1]set fructrl object successfully, uptime: 58s.
	Line 7070: 2026-07-06 18:12:23.685781 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: SystemLockDown, object name: SystemLockDown_1_00, position: 00.
	Line 7071: 2026-07-06 18:12:23.686717 fructrl NOTICE: sys_lockdown.lua(25): set c_sys_lockdown object successfully, uptime: 58s.
	Line 7076: 2026-07-06 18:12:23.756115 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: Multihost, object name: Multihost_00, position: 00.
	Line 7077: 2026-07-06 18:12:23.757242 fructrl NOTICE: multi_host.lua(25): register multihost object successfully
	Line 7082: 2026-07-06 18:12:23.829952 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: FruCtrlCapabilities, object name: FruCtrlCapabilities_00, position: 00.
	Line 7083: 2026-07-06 18:12:23.831011 fructrl NOTICE: fructrl_capabilities.lua(25): register capabilities object successfully
	Line 7084: 2026-07-06 18:12:23.832288 fructrl NOTICE: object_manage.lua(336): add objects callback, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, count: 4, took 400ms, uptime: 58 s
	Line 7085: 2026-07-06 18:12:23.833421 fructrl NOTICE: fructrl_obj_mgnt.lua(174): [Fructrl] Add object complete callback, position: 00
	Line 7086: 2026-07-06 18:12:23.834420 fructrl ERROR: fructrl_obj.lua(75): Objects [ThermTrip] in objs_bef_init distribute failed.
	Line 7087: 2026-07-06 18:12:23.835479 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, took 0ms, uptime: 58 s
	Line 7104: 2026-07-06 18:12:23.939751 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, count: 6, uptime: 58 s
	Line 7108: 2026-07-06 18:12:23.978298 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: DftPowerButton, object name: DftPowerButton_1_0101, position: 0101.
	Line 7109: 2026-07-06 18:12:23.982147 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ACCycle, object name: ACCycle_1_0101, position: 0101.
	Line 7110: 2026-07-06 18:12:23.984944 fructrl NOTICE: ac_cycle.lua(33): create ac_cycle class successfully, uptime: 58s.
	Line 7113: 2026-07-06 18:12:23.991119 fructrl NOTICE: ac_cycle.lua(63): insert ac_cycle object successfully, uptime: 58s.
	Line 7119: 2026-07-06 18:12:24.071766 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PGSignal, object name: PGSignal_1_0101, position: 0101.
	Line 7120: 2026-07-06 18:12:24.072567 fructrl NOTICE: fructrl.lua(390): [System:1] Add Fru 0 PGSignal.
	Line 7121: 2026-07-06 18:12:24.073402 fructrl NOTICE: pg_signal.lua(26): [System:1]set pg_signal object successfully, uptime: 59s.
	Line 7123: 2026-07-06 18:12:24.087586 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PowerButton, object name: PowerButton_1_0101, position: 0101.
	Line 7125: 2026-07-06 18:12:24.097882 fructrl NOTICE: fructrl.lua(344): [System:1]the power-on and power-off functions are provided
	Line 7126: 2026-07-06 18:12:24.099538 fructrl NOTICE: pwr_button.lua(31): [System:1]insert power_button fru0 object successfully, uptime: 59s.
	Line 7140: 2026-07-06 18:12:24.213861 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ButtonEvt, object name: ButtonEvt_1_0101, position: 0101.
	Line 7141: 2026-07-06 18:12:24.214828 fructrl NOTICE: button_evt.lua(36): set button_evt object successfully, uptime: 59s.
	Line 7146: 2026-07-06 18:12:24.265123 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PowerAction, object name: PowerAction_1_0101, position: 0101.
	Line 7147: 2026-07-06 18:12:24.266083 fructrl NOTICE: pwr_action.lua(23): [System:1]set pwr_action object successfully, uptime: 59s.
	Line 7148: 2026-07-06 18:12:24.267384 fructrl NOTICE: object_manage.lua(336): add objects callback, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, count: 6, took 320ms, uptime: 59 s
	Line 7150: 2026-07-06 18:12:24.274835 fructrl NOTICE: fructrl_obj_mgnt.lua(174): [Fructrl] Add object complete callback, position: 0101
	Line 7151: 2026-07-06 18:12:24.275805 fructrl ERROR: fructrl_obj.lua(75): Objects [ThermTrip] in objs_bef_init distribute failed.
	Line 7152: 2026-07-06 18:12:24.276879 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, took 10ms, uptime: 59 s
	Line 7154: 2026-07-06 18:12:24.285837 fructrl NOTICE: pg_signal.lua(92): [System:1]Init PowerGDStatus is (0).
	Line 7165: 2026-07-06 18:12:24.413817 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/010101, life cycle id: 1, count: 5, uptime: 59 s
	Line 7166: 2026-07-06 18:12:24.415321 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: RecordFault, object name: RecordFault_1_010101, position: 010101.
	Line 7167: 2026-07-06 18:12:24.415788 fructrl NOTICE: record_fault.lua(22): [System:1]set record_fault object successfully, uptime: 59s.
	Line 7168: 2026-07-06 18:12:24.416196 fructrl NOTICE: record_fault.lua(26): [System:1]insert into record_fault object successfully, uptime: 59s.
	Line 7169: 2026-07-06 18:12:24.442406 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: SysReset, object name: SysReset_1_010101, position: 010101.
	Line 7171: 2026-07-06 18:12:24.447753 fructrl NOTICE: sys_reset.lua(44): [System:1]set sys_reset object successfully, uptime: 59s.
	Line 7176: 2026-07-06 18:12:24.509016 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ThermTrip, object name: ThermTrip_1_010101, position: 010101.
	Line 7177: 2026-07-06 18:12:24.510178 fructrl NOTICE: therm_trip.lua(24): [System:1]set therm_trip object successfully, uptime: 59s.
	Line 7178: 2026-07-06 18:12:24.516772 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: Nmi, object name: Nmi_1_010101, position: 010101.
	Line 7179: 2026-07-06 18:12:24.517862 fructrl NOTICE: nmi.lua(27): [System:1]set nmi object successfully, uptime: 59s.
	Line 7180: 2026-07-06 18:12:24.520416 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ForceReset, object name: ForceReset_1_010101, position: 010101.
	Line 7181: 2026-07-06 18:12:24.521622 fructrl NOTICE: force_reset.lua(44): [System:1]insert force_reset fru0 object successfully, uptime: 59s.
	Line 7184: 2026-07-06 18:12:24.542528 fructrl NOTICE: object_manage.lua(336): add objects callback, path: /bmc/kepler/ObjectGroup/010101, life cycle id: 1, count: 5, took 120ms, uptime: 59 s
	Line 7185: 2026-07-06 18:12:24.544654 fructrl NOTICE: fructrl_obj_mgnt.lua(174): [Fructrl] Add object complete callback, position: 010101
	Line 7187: 2026-07-06 18:12:24.549148 fructrl NOTICE: fructrl_obj.lua(80): ===== Host 1 fructrl objects distribution completed. uptime:59s =====
	Line 7187: 2026-07-06 18:12:24.549148 fructrl NOTICE: fructrl_obj.lua(80): ===== Host 1 fructrl objects distribution completed. uptime:59s =====
	Line 7188: 2026-07-06 18:12:24.552034 fructrl NOTICE: hotswap_state.lua(71): Current event is FruPinMated, state is M0, uptime: 59s.
	Line 7189: 2026-07-06 18:12:24.553116 fructrl NOTICE: hotswap_state.lua(76): [System:1]Move M0 to M1, uptime: 59s.
	Line 7196: 2026-07-06 18:12:24.746562 fructrl NOTICE: fructrl_obj.lua(89): ========= Host 1 create other objects completed. uptime:59s =========
	Line 7197: 2026-07-06 18:12:24.747285 fructrl NOTICE: fructrl_obj.lua(92): add object completed, start update bmc_start_flag
	Line 7198: 2026-07-06 18:12:24.748687 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/010101, life cycle id: 1, took 210ms, uptime: 59 s
	Line 7199: 2026-07-06 18:12:24.771741 fructrl NOTICE: pwr_cycle.lua(175): [System:1]Not exist powercycle task when start bmc.
	Line 7201: 2026-07-06 18:12:24.777431 bios NOTICE: signal.lua(169): [bios]subscribe fructrl signal success
	Line 7203: 2026-07-06 18:12:24.791955 fructrl ERROR: bmc_start_flag.lua(29): c_bmc_start_flag object dose not exist
	Line 7204: 2026-07-06 18:12:24.793163 fructrl NOTICE: bmc_start_flag.lua(52): [BMC FruCtrl] start_flag is nil
	Line 7208: 2026-07-06 18:12:24.814609 fructrl NOTICE: pwr_restore.lua(227): [System1]bmc_reset_type is hard_reset.
	Line 7218: 2026-07-06 18:12:24.891320 fructrl ERROR: pwr_restore.lua(237): get env object failed
	Line 7220: 2026-07-06 18:12:24.902627 fructrl NOTICE: pwr_restore.lua(371): [System:1]chip environment variable loading is done and value unchanged
	Line 7222: 2026-07-06 18:12:24.908090 fructrl NOTICE: pwr_restore.lua(261): [System:1]active mode is None
	Line 7223: 2026-07-06 18:12:24.908873 fructrl NOTICE: pwr_restore.lua(390): [System:1]PwrRestoreRecord is, Reason=(nil), Execute=(nil), EffectivePeriod=(nil), Priority=(nil)
	Line 7224: 2026-07-06 18:12:24.909526 fructrl NOTICE: pwr_restore.lua(167): [System:1]Power restore policy.........................................always-on.
	Line 7233: 2026-07-06 18:12:25.079163 fructrl NOTICE: pwr_restore.lua(92): [System:1]Start random mode delay.
	Line 7249: 2026-07-06 18:12:25.151191 firmware_mgmt NOTICE: active_single_host_fructrl.lua(31): active_single_host_fructrl get fructrl object
	Line 7673: 2026-07-06 18:12:32.471181 fructrl NOTICE: button_evt.lua(204): execute pwr button shield, val=(0)
	Line 7731: 2026-07-06 18:12:32.921392 fructrl NOTICE: button_evt.lua(196): execute pwr button lock, val=(0)
	Line 7943: 2026-07-06 18:12:34.748707 fructrl NOTICE: pwr_restore.lua(105): [System:1]The server is in delay mode RandomDelay, with a delay of 9.5 seconds to power on
	Line 7944: 2026-07-06 18:12:34.750459 fructrl NOTICE: pwr_restore.lua(134): [System:1]wait PwrOnLocked unlock
	Line 7945: 2026-07-06 18:12:34.751211 fructrl NOTICE: pwr_restore.lua(138): [System:1]Quit wait_pwronlocked_unlock already.
	Line 7947: 2026-07-06 18:12:34.753845 fructrl NOTICE: pwr_restore.lua(202): need_delay_time is 21s
	Line 7948: 2026-07-06 18:12:34.754528 firmware_mgmt NOTICE: active_single_host_fructrl.lua(31): active_single_host_fructrl get fructrl object
	Line 8527: 2026-07-06 18:12:45.913323 event NOTICE: event_management.lua(1950): Add fructrl events is successfully executed!
	Line 9075: 2026-07-06 18:12:53.445209 fructrl NOTICE: fructrl_obj_mgnt.lua(300): [System:1]set poweron lock, pwronlocked=false, timeout=65535, appname=Upgrade, reason=VerifyFlash
	Line 9125: 2026-07-06 18:12:55.764520 fructrl NOTICE: ctrl_state.lua(61): [System:1]From NoAction to Oning.
	Line 9126: 2026-07-06 18:12:55.773099 fructrl NOTICE: therm_trip.lua(73): [System:1]Start to clear therm trip......
	Line 9128: 2026-07-06 18:12:56.208922 fructrl NOTICE: record_fault.lua(33): [System:1]Start to clear record fault......
	Line 9134: 2026-07-06 18:12:56.752189 fructrl NOTICE: fructrl.lua(78): [System:1]wait PwrOnLocked unlock...
	Line 9136: 2026-07-06 18:12:56.758045 fructrl NOTICE: fructrl.lua(85): [System:1]Quit wait_pwronlocked_unlock already.
	Line 9137: 2026-07-06 18:12:56.759264 fructrl NOTICE: fructrl.lua(109): [System:1]Send pre-poweron broadcast after all locks are unlocked.
	Line 9138: 2026-07-06 18:12:56.827627 fructrl NOTICE: fructrl_obj_mgnt.lua(300): [System:1]set poweron lock, pwronlocked=true, timeout=3000, appname=bios, reason=VerifyFlash
	Line 9139: 2026-07-06 18:12:56.828826 fructrl NOTICE: pwr_lock.lua(60): [System:nil][bios]Add power on lock to lock_table successfully.
	Line 9148: 2026-07-06 18:12:57.055249 fructrl NOTICE: button_evt.lua(196): execute pwr button lock, val=(1)
	Line 9149: 2026-07-06 18:12:57.056513 fructrl NOTICE: button_evt.lua(74): The panel button is sheild again due to the soft power on lock
	Line 10166: 2026-07-06 18:13:21.327494 fructrl NOTICE: fructrl_obj_mgnt.lua(300): [System:1]set poweron lock, pwronlocked=false, timeout=3000, appname=bios, reason=VerifyFlash
	Line 10167: 2026-07-06 18:13:21.328474 fructrl NOTICE: pwr_lock.lua(84): [System:nil]Update power on lock item successfully, appname=(bios), reason=(VerifyFlash), locked=(false), timeout=(3000)
	Line 10212: 2026-07-06 18:13:22.170450 fructrl NOTICE: pwr_lock.lua(156): [System:nil]Delete power on lock item, appname=(bios), reason=(VerifyFlash)
	Line 10247: 2026-07-06 18:13:22.710500 fructrl NOTICE: button_evt.lua(196): execute pwr button lock, val=(0)
	Line 10248: 2026-07-06 18:13:22.710874 fructrl NOTICE: button_evt.lua(74): The panel button is unsheild again due to the soft power on lock
	Line 10249: 2026-07-06 18:13:22.711267 fructrl NOTICE: pwr_lock.lua(162): [System:nil]PoweronLocked has been unlocked
	Line 10281: 2026-07-06 18:13:22.801643 fructrl NOTICE: fructrl.lua(127): [System:1]Power on after all locks are unlocked.
	Line 10282: 2026-07-06 18:13:22.802261 fructrl NOTICE: hotswap_state.lua(89): [System:1]Current event is FruInsertionCriteriaMet, state is M1, uptime: 117s.
	Line 10283: 2026-07-06 18:13:22.802709 fructrl NOTICE: hotswap_state.lua(93): [System:1]Move M1 to M2, uptime: 117s.
	Line 10301: 2026-07-06 18:13:22.954697 fructrl NOTICE: fructrl.lua(159): [System:1]execute power on
	Line 10303: 2026-07-06 18:13:22.956508 fructrl NOTICE: pwr_button.lua(51): [System:1]prepate to send short button signal through hwproxy Accessor
	Line 10311: 2026-07-06 18:13:22.996912 fructrl NOTICE: hotswap_state.lua(106): [System:1]Current event is FruActivated, state is M2, uptime: 117s.
	Line 10312: 2026-07-06 18:13:22.997843 fructrl NOTICE: hotswap_state.lua(110): [System:1]Move M2 to M3, uptime: 117s.
	Line 10620: 2026-07-06 18:13:24.341101 fructrl NOTICE: pwr_button.lua(55): [System:1]Notify fru0 cpld to send short button signal through hwproxy Accessor
	Line 10621: 2026-07-06 18:13:24.341436 fructrl NOTICE: fructrl.lua(68): [System:1]Set sys_reset_flag to true
	Line 10622: 2026-07-06 18:13:24.341789 fructrl NOTICE: fructrl.lua(174): [System:1]Powering on, the poweron timeout is (10) seconds
	Line 10626: 2026-07-06 18:13:24.348051 fructrl NOTICE: init.lua(79): register to bus for class, error name: kepler.class.InvalidProperty
	Line 10627: 2026-07-06 18:13:24.350409 fructrl ERROR: app_preloader.lua(232): ./opt/bmc/apps/fructrl/lualib/state_machine/ctrl_state.lua:63: app(fructrl/service/main) count(1) pcall failed(kepler.class.InvalidProperty: Class FruCtrl does not contains property power_on_finished.)
	Line 10627: 2026-07-06 18:13:24.350409 fructrl ERROR: app_preloader.lua(232): ./opt/bmc/apps/fructrl/lualib/state_machine/ctrl_state.lua:63: app(fructrl/service/main) count(1) pcall failed(kepler.class.InvalidProperty: Class FruCtrl does not contains property power_on_finished.)
	Line 10706: 2026-07-06 18:13:26.290743 fructrl NOTICE: pg_signal.lua(77): ==== [System:1]PowerGDStatus changed to power on ====
	Line 10707: 2026-07-06 18:13:26.291151 fructrl NOTICE: pg_signal.lua(80): [System:1]bmc execute poweron set PwrStateBeforeACLost to true
	Line 10708: 2026-07-06 18:13:26.293706 fructrl ERROR: synchronization.lua(187): set value failed when synchronizing property PGSignal_1_0101.PowerGDState, err:kepler.class.InvalidProperty: Class FruCtrl does not contains property power_on_finished.
	Line 10708: 2026-07-06 18:13:26.293706 fructrl ERROR: synchronization.lua(187): set value failed when synchronizing property PGSignal_1_0101.PowerGDState, err:kepler.class.InvalidProperty: Class FruCtrl does not contains property power_on_finished.
	Line 10710: 2026-07-06 18:13:26.323174 firmware_mgmt NOTICE: active_manage.lua(176): power_state_change_proc: cur reset type [AcReset], fructrl type[Systems].
	Line 10721: 2026-07-06 18:13:26.456087 fructrl NOTICE: fructrl.lua(779): [System:1]Refresh system reset detected 1
	Line 10722: 2026-07-06 18:13:26.457543 fructrl NOTICE: sys_reset.lua(78): [System:1]detected sys reset 1
	Line 10723: 2026-07-06 18:13:26.457859 fructrl NOTICE: fructrl.lua(68): [System:1]Set sys_reset_flag to false
	Line 10765: 2026-07-06 18:13:27.169794 fructrl NOTICE: ctrl_state.lua(87): [System:1]From Oning to NoAction.
	Line 10766: 2026-07-06 18:13:27.170640 fructrl NOTICE: pwr_mutation.lua(79): [System:1]map event type = FruActivatedCompleted
	Line 10767: 2026-07-06 18:13:27.171166 fructrl NOTICE: hotswap_state.lua(136): [System:1]Current event is FruActivatedCompleted, state is M3, uptime: 122s.
	Line 10768: 2026-07-06 18:13:27.171484 fructrl NOTICE: hotswap_state.lua(140): [System:1]Move M3 to M4, uptime: 122s.
	Line 10774: 2026-07-06 18:13:27.331550 fructrl NOTICE: hotswap_state.lua(167): [System:1]Current event is FruActivatedCompleted, state is M4, uptime: 122s.
	Line 10915: 2026-07-06 18:13:36.151043 sensor ERROR: sel_management.lua(1412): No need to process fructrl changes because boot not exist.
	Line 10928: 2026-07-06 18:13:36.630895 sensor ERROR: sel_management.lua(1412): No need to process fructrl changes because boot not exist.
	Line 10930: 2026-07-06 18:13:36.658096 sensor ERROR: sel_management.lua(1412): No need to process fructrl changes because boot not exist.
	Line 11104: 2026-07-06 18:13:56.442095 fructrl NOTICE: sys_reset.lua(57): [System:1]clear system reset detected
	Line 11113: 2026-07-06 18:13:57.743880 fructrl NOTICE: sys_reset.lua(72): [System:1]SetSysRstDetected is 0
	Line 11114: 2026-07-06 18:13:57.744556 fructrl NOTICE: fructrl.lua(779): [System:1]Refresh system reset detected 0
	Line 11115: 2026-07-06 18:13:57.746536 fructrl NOTICE: sys_reset.lua(78): [System:1]detected sys reset 0
	Line 11704: 2026-07-06 18:16:29.207632 fructrl NOTICE: init.lua(79): register to bus for class, error name: kepler.class.ClassNotDefined
	Line 12174: 2026-07-06 18:17:14.078142 fructrl NOTICE: start_profiling.lua(199): profiling finished, start time:1970-01-01 08:00:48, duration:5 min, sent signals:50, received signals:202, sent rpcs:295, received rpcs:14

260630节点,异常日志

1970-01-01 08:00:49.431050 fructrl NOTICE: service_app_base.lua(368): start fructrl service
	Line 7532: 1970-01-01 08:00:49.465970 fructrl NOTICE: micro_component.lua(157): Startup status has changed, Starting ==> InitCompleted, uptime:50s, cost 1320ms
	Line 7600: 1970-01-01 08:00:51.166080 fructrl NOTICE: object_manage.lua(682): start to fetch hwdiscovery objects
	Line 7689: 1970-01-01 08:00:52.231928 fructrl NOTICE: object_manage.lua(720): fetch hwdiscovery objects completely, took 0 ms, uptime: 53 s
	Line 7766: 1970-01-01 08:00:53.253347 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, count: 4, uptime: 54 s
	Line 7768: 1970-01-01 08:00:53.268251 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: SystemLockDown, object name: SystemLockDown_1_00, position: 00.
	Line 7769: 1970-01-01 08:00:53.268711 fructrl NOTICE: fructrl_obj_mgnt.lua(148): create host 1 object successful
	Line 7770: 1970-01-01 08:00:53.269140 fructrl NOTICE: sys_lockdown.lua(25): set c_sys_lockdown object successfully, uptime: 54s.
	Line 7771: 1970-01-01 08:00:53.304566 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: FruCtrlCapabilities, object name: FruCtrlCapabilities_00, position: 00.
	Line 7772: 1970-01-01 08:00:53.305150 fructrl NOTICE: fructrl_capabilities.lua(25): register capabilities object successfully
	Line 7788: 1970-01-01 08:00:53.466204 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: FruCtrl, object name: FruCtrl_1_0_00, position: 00.
	Line 7790: 1970-01-01 08:00:53.466662 fructrl NOTICE: fructrl.lua(618): [System:1]set fructrl object successfully, uptime: 54s.
	Line 7790: 1970-01-01 08:00:53.466662 fructrl NOTICE: fructrl.lua(618): [System:1]set fructrl object successfully, uptime: 54s.
	Line 7794: 1970-01-01 08:00:53.553034 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: Multihost, object name: Multihost_00, position: 00.
	Line 7795: 1970-01-01 08:00:53.553480 fructrl NOTICE: multi_host.lua(25): register multihost object successfully
	Line 7796: 1970-01-01 08:00:53.554144 fructrl NOTICE: object_manage.lua(336): add objects callback, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, count: 4, took 300ms, uptime: 54 s
	Line 7797: 1970-01-01 08:00:53.554632 fructrl NOTICE: fructrl_obj_mgnt.lua(174): [Fructrl] Add object complete callback, position: 00
	Line 7798: 1970-01-01 08:00:53.555038 fructrl ERROR: fructrl_obj.lua(75): Objects [ThermTrip] in objs_bef_init distribute failed.
	Line 7799: 1970-01-01 08:00:53.555658 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/00, life cycle id: 1, took 0ms, uptime: 54 s
	Line 7804: 1970-01-01 08:00:53.576752 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, count: 6, uptime: 54 s
	Line 7809: 1970-01-01 08:00:53.612788 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PGSignal, object name: PGSignal_1_0101, position: 0101.
	Line 7810: 1970-01-01 08:00:53.613293 fructrl NOTICE: fructrl.lua(407): [System:1] Add Fru 0 PGSignal.
	Line 7811: 1970-01-01 08:00:53.613820 fructrl NOTICE: pg_signal.lua(26): [System:1]set pg_signal object successfully, uptime: 54s.
	Line 7836: 1970-01-01 08:00:53.796636 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: DftPowerButton, object name: DftPowerButton_1_0101, position: 0101.
	Line 7849: 1970-01-01 08:00:53.930088 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PowerAction, object name: PowerAction_1_0101, position: 0101.
	Line 7850: 1970-01-01 08:00:53.930582 fructrl NOTICE: pwr_action.lua(23): [System:1]set pwr_action object successfully, uptime: 54s.
	Line 7855: 1970-01-01 08:00:53.931831 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ACCycle, object name: ACCycle_1_0101, position: 0101.
	Line 7857: 1970-01-01 08:00:53.965422 fructrl NOTICE: ac_cycle.lua(33): create ac_cycle class successfully, uptime: 54s.
	Line 7858: 1970-01-01 08:00:53.966288 fructrl NOTICE: ac_cycle.lua(63): insert ac_cycle object successfully, uptime: 54s.
	Line 7863: 1970-01-01 08:00:54.020298 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ButtonEvt, object name: ButtonEvt_1_0101, position: 0101.
	Line 7864: 1970-01-01 08:00:54.020781 fructrl NOTICE: button_evt.lua(36): set button_evt object successfully, uptime: 55s.
	Line 7865: 1970-01-01 08:00:54.026019 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: PowerButton, object name: PowerButton_1_0101, position: 0101.
	Line 7867: 1970-01-01 08:00:54.026834 fructrl NOTICE: fructrl.lua(361): [System:1]the power-on and power-off functions are provided
	Line 7868: 1970-01-01 08:00:54.027414 fructrl NOTICE: pwr_button.lua(31): [System:1]insert power_button fru0 object successfully, uptime: 55s.
	Line 7869: 1970-01-01 08:00:54.028090 fructrl NOTICE: object_manage.lua(336): add objects callback, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, count: 6, took 450ms, uptime: 55 s
	Line 7870: 1970-01-01 08:00:54.028570 fructrl NOTICE: fructrl_obj_mgnt.lua(174): [Fructrl] Add object complete callback, position: 0101
	Line 7871: 1970-01-01 08:00:54.028944 fructrl ERROR: fructrl_obj.lua(75): Objects [ThermTrip] in objs_bef_init distribute failed.
	Line 7872: 1970-01-01 08:00:54.029484 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/0101, life cycle id: 1, took 0ms, uptime: 55 s
	Line 7873: 1970-01-01 08:00:54.031477 fructrl NOTICE: pg_signal.lua(93): [System:1]Init PowerGDStatus is (0).
	Line 7900: 1970-01-01 08:00:54.303121 fructrl NOTICE: object_manage.lua(316): start to add objects, path: /bmc/kepler/ObjectGroup/010101, life cycle id: 1, count: 5, uptime: 55 s
	Line 7904: 1970-01-01 08:00:54.322743 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: RecordFault, object name: RecordFault_1_010101, position: 010101.
	Line 7905: 1970-01-01 08:00:54.324918 fructrl NOTICE: record_fault.lua(22): [System:1]set record_fault object successfully, uptime: 55s.
	Line 7906: 1970-01-01 08:00:54.325774 fructrl NOTICE: record_fault.lua(26): [System:1]insert into record_fault object successfully, uptime: 55s.
	Line 7907: 1970-01-01 08:00:54.335307 fructrl NOTICE: fructrl_obj_mgnt.lua(138): [System:1]Add object callback, class_name: ForceReset, object name: ForceReset_1_010101, position: 010101.
	Line 7908: 1970-01-01 08:00:54.348344 fructrl NOTICE: force_reset.lua(44): [System:1]insert force_reset fru0 object successfully, uptime: 55s.
	Line 7927: 1970-01-01 08:00:54.751082 fructrl NOTICE: fructrl_obj.lua(89): ========= Host 1 create other objects completed. uptime:55s =========
	Line 7928: 1970-01-01 08:00:54.751653 fructrl NOTICE: fructrl_obj.lua(92): add object completed, start update bmc_start_flag
	Line 7929: 1970-01-01 08:00:54.752910 fructrl NOTICE: object_manage.lua(346): add objects completely, path: /bmc/kepler/ObjectGroup/010101, life cycle id: 1, took 190ms, uptime: 55 s
	Line 7930: 1970-01-01 08:00:54.754987 fructrl NOTICE: pwr_cycle.lua(178): [System:1]Not exist powercycle task when start bmc.
	Line 7931: 1970-01-01 08:00:54.757088 fructrl ERROR: bmc_start_flag.lua(29): c_bmc_start_flag object dose not exist
	Line 7932: 1970-01-01 08:00:54.757593 fructrl NOTICE: bmc_start_flag.lua(52): [BMC FruCtrl] start_flag is nil
	Line 7933: 1970-01-01 08:00:54.772111 fructrl NOTICE: button_evt.lua(203): execute pwr button shield, val=(0)
	Line 7934: 1970-01-01 08:00:54.797997 fructrl NOTICE: button_evt.lua(195): execute pwr button lock, val=(0)
	Line 7969: 1970-01-01 08:00:55.226072 firmware_mgmt NOTICE: active_single_host_fructrl.lua(31): active_single_host_fructrl get fructrl object
	Line 8054: 1970-01-01 08:00:56.194531 bios NOTICE: signal.lua(169): [bios]subscribe fructrl signal success
	Line 8690: 2026-07-02 09:14:19.867031 firmware_mgmt NOTICE: active_single_host_fructrl.lua(31): active_single_host_fructrl get fructrl object
	Line 9195: 2026-07-02 09:14:26.895937 event NOTICE: event_management.lua(1950): Add fructrl events is successfully executed!
	Line 9314: 2026-07-02 09:14:29.506495 fructrl NOTICE: fructrl_obj_mgnt.lua(300): [System:1]set poweron lock, pwronlocked=false, timeout=65535, appname=Upgrade, reason=VerifyFlash
	Line 11910: 2026-07-02 09:19:45.224222 fructrl NOTICE: init.lua(79): register to bus for class, error name: kepler.class.ClassNotDefined
Search "fructrl" (366 hits in 1 file)

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

总结

当前问题与知识库中记录的历史故障高度一致,根本原因在于 fructrl 组件对 BMC 复位类型的错误判断。新版本 PR 本应通过全局属性解决此问题,但从实际表现看,新逻辑可能仍存在缺陷(或同步时序、或条件判断),导致通电开机策略无法触发。建议社区定位 BmcResetType 的更新流程与 fructrl 的读取时机。

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

根据您提供的日志和分析,结合知识库中的相关信息,通电开机策略不生效的原因可以定位为 fructrl 组件获取的 BMC 复位类型错误

问题根因分析

1. 复位类型判断错误导致策略跳过

在 OpenUBMC 中,通电开机策略的执行依赖于对 BMC 复位类型的正确判断。只有当复位类型为 AC 恢复(hard_reset) 时,fructrl 才会执行通电开机策略(如“保持上电”);如果错误判断为 soft_reset(软复位),策略会被直接跳过。

知识库中已有明确记录(文档片段 #8):

“fructrl 组件获取到的复位类型错误地识别为 soft_reset(软复位)。通电开机策略因为检查到错误 reset_type == soft_reset 而被跳过,导致策略未执行。”

同时,文档片段 #3(【待评审】新增全局变量获取准确的BMC复位类型)中明确指出:

“fructrl 需要判断 BMC 复位类型是否为 AC 恢复以执行通电开机策略。”

2. 新版本改动引入的判断问题

您提到的 PR 048274f29b4a10b28ee5b26d6ed61b43(根据全局属性BmcResetType判断BMC重启类型) 正是为了解决旧版本中复位类型获取不一致的问题而设计的。该改动引入了全局变量 BmcResetType,意图使所有组件通过同一公共属性获取准确的复位类型。

但从您的异常日志(260630节点)来看,缺少了正常日志(260330节点)中的关键打印:

  • 正常日志中有:pwr_restore.lua(227): [System1]bmc_reset_type is hard_reset.
  • 正常日志中有:pwr_restore.lua(167): [System:1]Power restore policy...always-on.

异常日志中完全缺失这两行,说明在新版本中,fructrl 在执行通电开机策略前未能正确获取到 hard_reset 类型的复位原因,或者全局变量 BmcResetType 的值未被及时更新/同步到 fructrl 组件。

3. 历史同类问题印证

文档片段 #6036(AC压测过程中通电开机策略为保持上电偶现不上电)中描述了完全一致的现象:

“maca将BMC复位后,fructrl读到的rest_type为softreset,所以未走通电开机策略。”

该问题发生在旧版本,而当前新版本虽然引入了全局属性方案,但可能由于以下原因仍未彻底解决:

  • 全局变量 BmcResetType 的更新时序问题(fructrl 启动时该变量尚未被 bmc_soc 设置)
  • 判断逻辑中仍存在其他条件导致 hard_reset 未能正确识别
  • 新代码中可能遗漏了某些场景的适配

建议排查方向

  1. 检查新版本中 fructrl 组件读取 BmcResetType 的时机
    确认 fructrl 启动时是否能在 bmc_soc 写入该属性之后才读取。若读取过早(值为默认0xff),则可能导致错误判断。

  2. 对比 pwr_restore.lua 中的判断逻辑
    新版本是否在 pwr_restore.lua 中增加了条件分支,例如只认 BmcResetType=0(AC恢复),而把其他值(如255默认值)当作软复位处理。

  3. 验证全局变量的传递链路
    根据文档片段 #3 的方案,bmc_soc 读取 BmcHardResetFlag 后同步至全局变量 BmcResetType。请确认 bmc_soc 在新版本中是否正确设置了该全局属性。

  4. 短期回退方案
    您已经验证回退到260330节点可以生效,说明旧版本基于 mc_sys_info.get_reset_type 虽然存在其他问题(如与黑盒接口不一致),但在此场景下工作正常。可优先回退,并等待社区修复PR中的缺陷。

总结

当前问题与知识库中记录的历史故障高度一致,根本原因在于 fructrl 组件对 BMC 复位类型的错误判断。新版本 PR 本应通过全局属性解决此问题,但从实际表现看,新逻辑可能仍存在缺陷(或同步时序、或条件判断),导致通电开机策略无法触发。建议社区定位 BmcResetType 的更新流程与 fructrl 的读取时机。

新版本fructrl确实没有打印:bmc_reset_type is hard_reset

之前fructrl使用SDK的 mc_sys_info.get_reset_type 函数判断BMC复位类型,不太准确,最新的fructrl已修改为通过全局属性BmcResetType来判断BMC复位类型,BmcResetType的取值是在闭源组件中更新的,新版的fructrl需要搭配最新的SDK使用。

这个具体的SDK版本是多少,依赖的闭源组件版本有哪些

SDK版本是26.06,依赖的闭源组件是bmc_soc