phosphor-dump-manager: filter duplicate fault logs
- Filter incoming fault logs based on log ID and timestamp.
- Skip creating dump entries if a duplicate log is detected.
- Replace existing dump entry if the incoming log has higher priority.
- Fault log entry indexes start from 0.
- Refresh 0004 patch
Tested:
```
EINJ triggers a fatal error after 10 DRAM CECC injections.
localhost:/opt/AMD/amdraserrorinjectiontest# ./cmdline_amdraserrorinjectiontest --dramecc --address 0x0010000b --enablemcapolling 0 --errortype 0
...
localhost:/opt/AMD/amdraserrorinjectiontest# ./cmdline_amdraserrorinjectiontest --dferror --errortype 1 --die 0
root@zoro:~# journalctl -b -u com.amd.RAS@1.service
...
Jul 01 22:35:33 zoro amd-ras-manager[1837]: The alert signaled is due to a RAS fatal error
...
Jul 01 22:35:33 zoro amd-ras-manager[1837]: Saving CPER file to /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error0.cper
Jul 01 22:35:33 zoro amd-ras-manager[1837]: Generated runtime CPER file : /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error0.cper
Jul 01 22:35:33 zoro amd-ras-manager[1837]: [HPM0,CPU,ERROR,ASSERT] DRAM CECC runtime error counter overflow occurred
Jul 01 22:35:33 zoro amd-ras-manager[1837]: DRAM CECC runtime error counter overflow occurred
...
Jul 01 22:35:50 zoro amd-ras-manager[1837]: Saving CPER file to /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error1.cper
Jul 01 22:35:50 zoro amd-ras-manager[1837]: Generated runtime CPER file : /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error1.cper
Jul 01 22:35:50 zoro amd-ras-manager[1837]: [HPM0,CPU,ERROR,ASSERT] DRAM CECC runtime error counter overflow occurred
Jul 01 22:35:50 zoro amd-ras-manager[1837]: DRAM CECC runtime error counter overflow occurred
...
Jul 01 22:37:14 zoro amd-ras-manager[1837]: Saving CPER file to /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error8.cper
Jul 01 22:37:14 zoro amd-ras-manager[1837]: Generated runtime CPER file : /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error8.cper
Jul 01 22:37:14 zoro amd-ras-manager[1837]: [HPM0,CPU,ERROR,ASSERT] DRAM CECC runtime error counter overflow occurred
Jul 01 22:37:14 zoro amd-ras-manager[1837]: DRAM CECC runtime error counter overflow occurred
...
Jul 01 22:37:24 zoro amd-ras-manager[1837]: Saving CPER file to /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error9.cper
Jul 01 22:37:24 zoro amd-ras-manager[1837]: Generated runtime CPER file : /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error9.cper
Jul 01 22:37:24 zoro amd-ras-manager[1837]: [HPM0,CPU,ERROR,ASSERT] DRAM CECC runtime error counter overflow occurred
Jul 01 22:37:24 zoro amd-ras-manager[1837]: DRAM CECC runtime error counter overflow occurred
...
Jul 01 22:38:19 zoro amd-ras-manager[1837]: The alert signaled is due to a RAS fatal error
Jul 01 22:38:19 zoro amd-ras-manager[1837]: RAS FATAL Error detected. System may reset after harvesting MCA data based on policy set.
...
Jul 01 22:38:20 zoro amd-ras-manager[1837]: Removing CPER: /var/lib/amd-bmc-ras/node1-dram-runtime-ras-error9.cper
Jul 01 22:38:20 zoro amd-ras-manager[1837]: Saving CPER file to /var/lib/amd-bmc-ras/node1-ras-error9.cper
Jul 01 22:38:20 zoro amd-ras-manager[1837]: Generated Fatal CPER file : /var/lib/amd-bmc-ras/node1-ras-error9.cper
...
root@zoro:~# busctl tree xyz.openbmc_project.Dump.Manager
`- /xyz
`- /xyz/openbmc_project
`- /xyz/openbmc_project/dump
|- /xyz/openbmc_project/dump/bmc
`- /xyz/openbmc_project/dump/faultlog
|- /xyz/openbmc_project/dump/faultlog/0
| `- /xyz/openbmc_project/dump/faultlog/0/entry
| |- /xyz/openbmc_project/dump/faultlog/0/entry/0
| |- /xyz/openbmc_project/dump/faultlog/0/entry/1
| |- /xyz/openbmc_project/dump/faultlog/0/entry/2
| |- /xyz/openbmc_project/dump/faultlog/0/entry/3
| |- /xyz/openbmc_project/dump/faultlog/0/entry/4
| |- /xyz/openbmc_project/dump/faultlog/0/entry/5
| |- /xyz/openbmc_project/dump/faultlog/0/entry/6
| |- /xyz/openbmc_project/dump/faultlog/0/entry/7
| |- /xyz/openbmc_project/dump/faultlog/0/entry/8
| `- /xyz/openbmc_project/dump/faultlog/0/entry/9
`- /xyz/openbmc_project/dump/faultlog/1
root@zoro:~# journalctl -b -u xyz.openbmc_project.Dump.Manager.service
Jul 01 22:13:44 zoro systemd[1]: Starting Phosphor Dump Manager...
...
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: 5:185m5:185m[createDumpFromCrashdumpSignal]: hostId mismatch, dbus signal: 0, hostId: 1
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: In dump_manager_faultlog.cpp createDump
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: OriginatorId is not provided
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: OriginatorType is not provided. Replacing the string with the default value
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: next entry id: 0, entries.size(): 0
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: dump_manager_faultlog.cpp: add faultlog entry
Jul 01 22:35:33 zoro phosphor-dump-manager[1163]: End of dump_manager_faultlog.cpp createDump
...
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: 5:185m5:185m[createDumpFromCrashdumpSignal]: hostId mismatch, dbus signal: 0, hostId: 1
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: In dump_manager_faultlog.cpp createDump
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: OriginatorId is not provided
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: OriginatorType is not provided. Replacing the string with the default value
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: next entry id: 8, entries.size(): 8
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: dump_manager_faultlog.cpp: add faultlog entry
Jul 01 22:37:14 zoro phosphor-dump-manager[1163]: End of dump_manager_faultlog.cpp createDump
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: 5:185m5:185m[createDumpFromCrashdumpSignal]: hostId mismatch, dbus signal: 0, hostId: 1
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: In dump_manager_faultlog.cpp createDump
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: OriginatorId is not provided
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: OriginatorType is not provided. Replacing the string with the default value
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: next entry id: 9, entries.size(): 9
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: dump_manager_faultlog.cpp: add faultlog entry
Jul 01 22:37:24 zoro phosphor-dump-manager[1163]: End of dump_manager_faultlog.cpp createDump
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: 5:185m5:185m[createDumpFromCrashdumpSignal]: hostId mismatch, dbus signal: 0, hostId: 1
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: Got new crashdump notification!
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: In dump_manager_faultlog.cpp createDump
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: OriginatorId is not provided
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: OriginatorType is not provided. Replacing the string with the default value
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: next entry id: 9, entries.size(): 9
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: dump_manager_faultlog.cpp: add faultlog entry
Jul 01 22:38:20 zoro phosphor-dump-manager[1163]: End of dump_manager_faultlog.cpp createDump
root@zoro:~# busctl introspect xyz.openbmc_project.Dump.Manager /xyz/openbmc_project/dump/faultlog/0/entry/9
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
xyz.openbmc_project.Common.OriginatedBy interface - - -
.OriginatorId property s "" emits-change writable
.OriginatorType property s "xyz.openbmc_project.Common.Originate... emits-change writable
xyz.openbmc_project.Common.Progress interface - - -
.CompletedTime property t 1782970699 emits-change writable
.StartTime property t 1782970699 emits-change writable
.Status property s "xyz.openbmc_project.Common.Progress.... emits-change writable
xyz.openbmc_project.Dump.Entry interface - - -
.GetFileHandle method - h -
.InitiateOffload method s - -
.OffloadUri property s "" emits-change writable
.Offloaded property b false emits-change writable
.Size property t 55 emits-change writable
xyz.openbmc_project.Dump.Entry.FaultLog interface - - -
.AdditionalTypeName property s "" const
.PrimaryLogId property s "node1-ras-error9.cper" const
.Type property s "xyz.openbmc_project.Common.FaultLogT... const
xyz.openbmc_project.Object.Delete interface - - -
.Delete method - - -
xyz.openbmc_project.Time.EpochTime interface - - -
.Elapsed property t 1782970699 emits-change writable
root@zoro:~# busctl get-property xyz.openbmc_project.Dump.Manager /xyz/openbmc_project/dump/faultlog/0/entry/9 xyz.openbmc_project.Dump.Entry.FaultLog Type
s "xyz.openbmc_project.Common.FaultLogType.FaultLogTypes.Crashdump"
```
Fusion-Link:
platform5: https://fusion2.corp.google.com/47eab8ce-1121-37a6-9495-6aa965e76aba
platform15: https://fusion2.corp.google.com/cda5ef0f-d4f6-3ffc-8e22-8d60a70e0ef9
platform18: https://fusion2.corp.google.com/5803ed5a-eaa3-30d8-87e7-042d92f1f555
platform17: https://fusion2.corp.google.com/ce200d62-7295-3a50-a92d-70cdfdfbf163
platform11+ext: https://fusion2.corp.google.com/960816e1-2476-39f0-b0ba-50a1b25b1a50
platform11: https://fusion2.corp.google.com/07d2cc8a-1738-35d3-bf9d-6b52f0325873
Platforms-Affected: all platforms
Google-Bug-Id: 481913446
Google-Bug-Id: 511865753
Change-Id: I4d97ac9b333dfd022541a446c58b27a8ba2f2fe3
Signed-off-by: Eugene Huang <eugene.ty.huang@fii-na.corp-partner.google.com>
Signed-off-by: cmchang <cmchang@google.com>
(cherry picked from commit 2089b9e218c57c3b0740b29dc2143066cbb46ed8)
3 files changed