Add Clear method
There was an issue where the first SEL records share Record ID 1 if
they are generated around the same time. The cause was determined to
be that several records get assigned Record ID 1 because the
/var/log/ipmi_sel was checked and missing. The file was removed by
the IPMI handlers that use this file to store the SEL. This does not
apply to IPMI handlers that use phosphor-logging to store SEL entries.
Although, a future iteration could add support for removing SEL
entries in phosphor-logging.
This change adds a method to clear the IPMI SEL that removes the
/var/log/ipmi_sel and refreshes rsyslog. The IPMI handlers that use
this file would no longer be responsible for directly clearing SEL.
Now that phosphor-sel-logger can handle the clear of SEL, the logic
for Record ID is simplified.
The Clear method is put behind an optional flag for systems
experiencing the issue with Record ID 1 and use ipmi_sel. This
implementation is alternative to the efforts in
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-sel-logger/+/44533
making it obsolete.
Note:
- https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces
/+/45402 is required.
- Do not use send-to-logger option with clears-sel
Tested with clears-sel:
- The Clear method will remove the /var/log/ipmi_sel files and refresh
rsyslog and Record ID count.
- Each record has its own unique Record ID.
- New records added after restarting xyz.openbmc_project.Logging.IPMI
will continue Record ID count where it left off.
Signed-off-by: Charles Boyer <Charles.Boyer@fii-usa.com>
Change-Id: I9037aba409eaf99fa06fd8ea84ef888669966eea
diff --git a/meson.build b/meson.build
index 225fd47..dc663d2 100644
--- a/meson.build
+++ b/meson.build
@@ -35,6 +35,9 @@
'phosphor-logging',
fallback: ['phosphor-logging', 'phosphor_logging_dep'])
endif
+if get_option('clears-sel')
+ cpp_args += '-DSEL_LOGGER_CLEARS_SEL'
+endif
executable(
'sel-logger',