传感器事件上报问题

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

问题描述

1、存在传感器事件EventDir已经触发,但是无sel事件上报

image

2026-04-23 14:53:43.151309 general_hardware ERROR: pcieswitch_agent.lua(41): PCIeSwitch_1_01010E: get pcieswitch state info failed [repeated 142 times in 302s from 2026-04-23 14:48:41.585989 to 2026-04-23 14:53:43.151309]

2026-04-23 14:54:05.213839 SSDP NOTICE: object_group_added(221): Call GetObjects failed, obj: /bmc/kepler/ObjectGroup/01010D3505, error: GDBus.Error:org.freedesktop.DBus.Error.UnknownObject: Unknown object path /bmc/kepler/ObjectGroup/01010D3505

2026-04-23 14:54:18.321998 fault_diagnosis NOTICE: soc3_ras.lua(874): fpc_process: IsoType = 2, ResponseCode = 0, IsoStatus = 0, FaultType = 0

2026-04-23 14:54:18.419138 fault_diagnosis NOTICE: soc3_ras.lua(809): fpc_process: item is nil

2026-04-23 14:54:18.419518 fault_diagnosis ERROR: soc3_ras.lua(731): iso_task_obj is nil

2026-04-23 14:54:18.434828 fault_diagnosis NOTICE: parts_ras.lua(139): BiosReportMemoryRas: Assertion(0x00), EventType(0x24) [ 0x00 0x00 0x00 0x02 0x00 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00]

2026-04-23 14:54:18.531395 fault_diagnosis NOTICE: fdm_config.lua(167): Gid1, Lid0, Cpu0, Channel2, SpprGranularityDimm0:0, SpprGranularityDimm1:1

2026-04-23 14:54:18.534041 fault_diagnosis NOTICE: fdm_config.lua(167): Gid1, Lid0, Cpu1, Channel2, SpprGranularityDimm0:0, SpprGranularityDimm1:1

2026-04-23 14:54:18.538321 ras ERROR: l_bitstring.cpp(215): byte input arg error, idx1 = 0, idx2 = 0, m_count = 0

2026-04-23 14:54:18.802554 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel0, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.804902 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel1, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.806944 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel2, ACLSTotalSub0:32, ACLSCurrentSub0:32, ACLSTotalSub1:32, ACLSCurrentSub1:32

2026-04-23 14:54:18.809034 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel3, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.811067 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel4, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.813076 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel5, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.815232 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel6, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.817122 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel7, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.819207 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel8, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.821966 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel9, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.824071 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel10, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.826174 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel11, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.828269 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel12, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.831302 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel13, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.834139 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel14, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.836755 fault_diagnosis NOTICE: fdm_config.lua(139): Gid1, Lid0, Cpu0, Channel15, ACLSTotalSub0:0, ACLSCurrentSub0:0, ACLSTotalSub1:0, ACLSCurrentSub1:0

2026-04-23 14:54:18.875906 ras ERROR: l_bitstring.cpp(215): byte input arg error, idx1 = 0, idx2 = 0, m_count = 0

2026-04-23 14:54:36.010700 bios NOTICE: firmware_multihost.lua(250): [bios] update teeos version() to db success, system id: 1

2026-04-23 14:54:36.011103 bios NOTICE: bios_service.lua(539): system 1 set teeos version to – successfully

2、尝试查看debug日志观察。同时触发两个DIMM assert情况,debug日志查看已经上报

2026-04-23 17:47:11.847055 sensor INFO: sensor_insstance.lua(218): discrete event [DiscreteEvent_Dimm000Listen_8_01010117] dir has been changed to 0x91 [repeated 3 times in 610s from 2026-04-23 17:37:01.945579 to 20226-04-23 17:47:11.847055

2026-04-23 17:47:11.848558 sensor INFO: sensor_instcance.lua(256): discrete event [DiscreteEvent_Dimm000Listen_8_01010117]will assert a SEL

2026-04-23 17:47:11.861367 sensor DEBUG: object.luaa(88): set property traceback:Listen_8_01010117],interface[bmc.kepler.Systems.DiiscreteEvent], name[Property],[DiscreteEvent_Dimm000Listen_8_01010117] will assert a SELsender[bmc.kepler.sensor], path[/bmc/kepler/Systems/1/DisecreteEvents/DiscreteEvent_Dimm000 value[0] → [1], traceback[stack traceback:./opt/bmc/libmc/lualib/traceback/object.luua:49:in function <./opt/bmc/libmc/lualib/traceback/object.lua:45> [C]: in function 'pcall 1./opt/bmc/libmc/lualib/mc/logging.lua:119: in function ‘format_msg’ ./opt/bmc/lib/mc/lualib/mc/logging.lua:308: in function 'LOG_MSG

./opt/bmc/libmc/lualib/mc/logging.lua:527: in function ‘log_easy’ ./opt/bmc/libmc/lualib/mc/logging.lua:531: in function 'debug_easy"

./opt/bmc/libmc/lualib/traceback/object.lua:88: in functcion ‘before set value’ ./opt/bmc/libmc/lualib/traceback/object.lua:93: in ffunction '_newindex

…c/lualib/mc/class_mgnt/api/object/property_mgmt/init.lua:255: in function <…c/lualib/mc/class_mgnt/api/object/property_mgmt/init.lua:229>

[C]: in function 'pcall" ibmc/lualib/mc/class_mgnt/types/sync/synchronization.lua:185: in function <…ibmc/lualib/mc/class_mgrht/types/sync/synchronization.lua:151>[C]: in function ‘pcall’

. ibmc/lualib/mc/class_mgnt/types/sync/synchronization.lua:210: in functio… ibmc/lualib/mc/class_mgnt/types/synchronization.lua:197> [C]: in fundThe the the the phải những

’ /opt/bm

c/skynet/lualib/skynet/queue.lua: in function 'queu"ie ',"

ock/init.lua:358: in function <./opt/bmc/libmc/lualib/dbus/nonblock/intt.lua:311

…ibmc/lualib/mc/class_mgnt/types/sync/synchronization.lua:287: in function

[builtin#21]: at 0xfffb3db8d28] " [C]: in function ‘pcall’cb’ ./opt/bmc/libmc/lualib/dbus/nonbl

text.lua:212: in function ‘with_context’ ./opt/bmc/libmc/lualib/mc/app_preloader.lua:97: in function /opt/bmc/skynet/lualib/skynet.lua: in function </opt/bmc/skynet/lualib/skvnet lus:0>l

2026-04-23 17:47:11.964567 sensor INFO: sensor_instcance.lua(256): discrete event [DiscreteEvent_DIMM100Listen_8_01010117]will assert a SEL

实际查看sel日志上报,只有一个事件DIMM100上报,DIMM000未上报。

image

环境信息

  • 操作系统:[如 Ubuntu 24.04]

  • 软件版本:[如 OpenUBMC2509]

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

重现步骤

  1. [第一步]

  2. [第二步]

  3. [第三步]

期望结果

[您希望实现什么]

实际结果

[实际发生了什么,包含错误信息]

尝试过的解决方案

[列出您已经尝试过的解决方案及结果]

分析结论

[详细总结您对此问题的分析结论]

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

总结

本次问题为特定设备(DIMM000)的离散事件对象加载失败导致的SEL上报异常,非系统性故障。解决路径应聚焦于事件配置、SDR注册与静态属性验证,通过日志与配置比对,即可定位并修复。

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

传感器事件上报问题分析报告

问题描述

系统中存在离散传感器事件(DiscreteEvent)状态已触发(EventDir=1),但对应的 SEL(System Event Log)日志未正常上报的问题。

核心现象:

  • 期望行为:当 DiscreteEvent_DIMM000Listen_8_01010117EventDir 状态变为 asserted(置位)时,应生成一条对应的 SEL 记录。
  • 实际行为
    1. 现场日志显示 DiscreteEvent_DIMM000Listen_8_01010117EventDir 已被设置为 1。
    2. DEBUG 日志 (sensor.log) 记录了该事件已进入触发SEL的流程(will assert a SEL)。
    3. 但是最终在 SEL 日志中,仅能看到 DIMM100 的事件,而 DIMM000 的事件缺失

关键证据分析

1. SEL日志与Debug日志对比

序号 时间 (2026-04-23) SEL日志事件 状态
- 17:47:11 Memory: DIMM100 Spare Asserted :white_check_mark:
- 17:47:11 Memory: DIMM000 Spare 未找到 :cross_mark:

Debug日志记录

2026-04-23 17:47:11.848558 sensor INFO: sensor_instance.lua(256): discrete event [DiscreteEvent_Dimm000Listen_8_01010117] will assert a SEL
2026-04-23 17:47:11.964567 sensor INFO: sensor_instance.lua(256): discrete event [DiscreteEvent_DIMM100Listen_8_01010117] will assert a SEL

:white_check_mark: DIMM100:cross_mark:DIMM000 均已进入 assert a SEL 流程,但只有前者成功生成SEL记录,说明问题出在 DIMM000 的SEL生成或写入阶段。


2. 事件映射与配置关系分析(基于知识库)

根据系统架构,一个完整的传感器事件上报流程为:

graph TD
    A[硬件/固件触发] --> B[DiscreteEvent EventDir 变化]
    B --> C[离散传感器 (DiscreteSensor) 检测]
    C --> D{AssertMask/DeassertMask 匹配?}
    D -->|是| E[生成SEL事件]
    E --> F[写入SEL日志数据库]
    F --> G[通过Web/IPMI/Redfish上报]

关键实体分析

  • DiscreteEvent_DIMMxxxxx:

    • 类型:artifact
    • 描述:与内存传感器相关的离散事件实体。
    • Sensor.Log 中记录为“未加载”,这表明该事件对象可能存在注册失败或加载异常的问题,是本次问题的核心线索。
  • DIMM000DIMM100:

    • 两者同为内存模块标识符(类似 DIMM010DIMM110)。
    • DIMM100 能正常上报,说明 SEL 框架和公共组件工作正常,问题极有可能是 DIMM000 或其关联的 DiscreteEvent 配置/注册的局部性问题
  • 事件上报依赖项:

    • Sensor Number: 每个传感器(含离散)必须有唯一的 Sensor Number
    • Event Data 2: 该字段包含 Sensor Number,用于标识具体哪个传感器触发事件。
    • Provides Device SDRs: BMC 支持 SDR(Sensor Data Repository),说明系统具备存储和管理传感器元数据的能力。
    • Device Available: 设备状态为 “yes”,BMC 在线。

尝试过的解决方案与结果

  1. 查看日志文件 AppDump/sensor/app.logSensor.Log

    • Sensor.Log 中发现 DiscreteEvent_DIMM000Listen_8_01010117 被标记为未加载 (not loaded)
    • 结论:该离散事件对象未能成功注册到系统,导致尽管 EventDir 被设置,但没有对应的传感器驱动或事件处理器去响应它。
  2. 触发两个DIMM事件进行对比

    • 成功触发 DIMM000DIMM100EventDir
    • Debug日志显示两者都执行了 will assert a SEL
    • 结果:DIMM100 上报成功,DIMM000 依然缺失
    • 结论DIMM000 的问题并非出现在事件监听层,而更可能是在 SEL生成、权限检查或SDR注册环节被静默拦截或失败。
  3. 检查静态配置与CSR配置

    • 问题可能源于 vpd 仓库中的静态事件定义缺失,或与 DIMM000 对应的 IpmiSelFilter 过滤器将其过滤。
    • 由于 DIMM100 能上报,推测 DIMM000 的相关配置项(如 Sensor Type, Sensor Number)可能存在 冲突、重复或未定义

分析结论

根本原因

DiscreteEvent_DIMM000Listen_8_01010117 未能成功加载到系统中(SDR未注册),导致虽然其 EventDir 状态改变,但系统缺少与之关联的 DiscreteSensorAssertMask 配置,从而无法完成SEL事件的生成与上报流程

核心证据:

  • Sensor.Log 明确记录该事件为 “not loaded”。
  • Debug日志只停留在 “将要上报” 阶段,中断于实际写入SEL之前。
  • 同类型、同流程的 DIMM100 事件能正常上报,排除系统级故障可能。

解决方案建议

  1. 检查并修复离散事件注册

    • 确认 discrete_event.yml 或相关配置文件中,DiscreteEvent_DIMM000Listen_8_01010117 的定义完整且无语法错误。
    • 验证 EventData1SensorTypeSensorNumber 等关键字段是否与 DIMM000 的传感器对象正确关联。
  2. 验证 DIMM000Sensor Number 唯一性

    • 检查是否存在 Sensor Number 冲突(例如多个传感器使用了相同的ID)。
    • 如果 Sensor Number0xFF,系统将动态分配,需确认分配过程是否异常。
  3. 检查事件过滤器 IpmiSelFilter

    • 查看 proto/datas.yaml 中是否为该事件配置了匹配的过滤器。
    • 确保 FilterMaskSelData 匹配条件正确,避免被规则过滤。
  4. 排查SR(System Release)文件

    • 确认 DIMM000 所在硬件的 SR 配置文件中,Capabilities 属性是否正确(如 192),以确保传感器在实体在位时被激活。
  5. 添加临时调试日志

    • sel_management.luaadd sel 函数入口处,打印所有传入参数,尤其是 SensorIdSensorNumber,确认 DIMM000 的事件是否到达此函数。

总结

本次问题为特定设备(DIMM000)的离散事件对象加载失败导致的SEL上报异常,非系统性故障。解决路径应聚焦于事件配置、SDR注册与静态属性验证,通过日志与配置比对,即可定位并修复。

请提供一下完整日志