sqlite is an optional component; if all you want to do is log to syslog it's not required; as such it would be better for it to be optionally included via a use flag. Also, the init script runs it as "rasdaemon --foreground --record --enable", it would appear from the code that it always exits if --enable is set regardless of the foreground option: if (args.enable_ras) { int enable; enable = (args.enable_ras > 0) ? 1 : 0; toggle_ras_mc_event(enable); return 0; } openlog(TOOL_NAME, 0, LOG_DAEMON); if (!args.foreground) if (daemon(0,0)) exit(EXIT_FAILURE); handle_ras_events(args.record_events); I haven't tested it yet, but based on visual inspection this just doesn't seem right. It would also be good to have an init script that supported just syslog as well instead of forcing sqlite. Thanks...
syslog would be preferred, I'm open to patches as well, the idea is sound.
Created attachment 577672 [details] New ebuild
Created attachment 577674 [details] New rc script
Created attachment 577676 [details] conf.d file
Ok, here's an updated ebuild with sqlite optional. I haven't tested it with sqlite, but it works fine with syslog. I'm not sure why all those kernel options were marked as required? I removed them all but the ACPI one. rasdaemon uses the tracing infrastructure to read events, but all those trace kernel options were about actually tracing kernel function calls, which seems unrelated to this. It runs fine without them, although I haven't had any failures yet to validate it receives events.
At least at the time it would not build without the options set.
Huh. Dunno, the build barfed on me at first: * Checking for suitable kernel configuration options... * CONFIG_DYNAMIC_FTRACE: is not set when it should be. * CONFIG_FUNCTION_GRAPH_TRACER: is not set when it should be. * CONFIG_FUNCTION_TRACER: is not set when it should be. * CONFIG_STACK_TRACER: is not set when it should be. * Please check to make sure these options are set correctly. I just removed the check for those and it compiled and seems to be running fine: May 23 14:48:50 bender rasdaemon: ras:mc_event event disabled May 23 14:48:50 bender rasdaemon: ras:aer_event event disabled May 23 14:48:50 bender rasdaemon: mce:mce_record event disabled May 23 14:48:50 bender rasdaemon: ras:extlog_mem_event event disabled May 23 14:48:50 bender rasdaemon: ras:non_standard_event event disabled May 23 14:48:50 bender rasdaemon: ras:arm_event event disabled May 23 14:48:50 bender rasdaemon: ras:mc_event event enabled May 23 14:48:50 bender rasdaemon: ras:aer_event event enabled May 23 14:48:50 bender rasdaemon: mce:mce_record event enabled May 23 14:48:50 bender rasdaemon: ras:mc_event event enabled May 23 14:48:50 bender rasdaemon: Enabled event ras:mc_event May 23 14:48:50 bender rasdaemon: ras:extlog_mem_event event enabled May 23 14:48:50 bender rasdaemon: ras:non_standard_event event enabled May 23 14:48:50 bender rasdaemon: ras:arm_event event enabled May 23 14:48:50 bender rasdaemon: ras:aer_event event enabled May 23 14:48:50 bender rasdaemon: Enabled event ras:aer_event May 23 14:48:50 bender rasdaemon: ras:non_standard_event event enabled May 23 14:48:50 bender rasdaemon: Enabled event ras:non_standard_event May 23 14:48:50 bender rasdaemon: ras:arm_event event enabled May 23 14:48:50 bender rasdaemon: Enabled event ras:arm_event May 23 14:48:50 bender rasdaemon: Family 6 Model 9e CPU: only decoding architectural errors May 23 14:48:50 bender rasdaemon: mce:mce_record event enabled May 23 14:48:50 bender rasdaemon: Enabled event mce:mce_record May 23 14:48:50 bender rasdaemon: ras:extlog_mem_event event enabled May 23 14:48:50 bender rasdaemon: Enabled event ras:extlog_mem_event
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e7e05995da72932bbe91c2b72d498ce86b862218 commit e7e05995da72932bbe91c2b72d498ce86b862218 Author: Matthew Thode <prometheanfire@gentoo.org> AuthorDate: 2019-05-24 04:32:36 +0000 Commit: Matthew Thode <prometheanfire@gentoo.org> CommitDate: 2019-05-24 04:32:53 +0000 app-admin/rasdaemon: we don't need sqlite Thanks to Paul B. Henson <henson@acm.org> for the help Fixes: https://bugs.gentoo.org/686128 Package-Manager: Portage-2.3.62, Repoman-2.3.12 Signed-off-by: Matthew Thode <prometheanfire@gentoo.org> app-admin/rasdaemon/files/rasdaemon.confd | 2 + app-admin/rasdaemon/files/rasdaemon.openrc-r2 | 21 +++++++++ app-admin/rasdaemon/rasdaemon-0.6.2-r4.ebuild | 64 +++++++++++++++++++++++++++ 3 files changed, 87 insertions(+)
I think this fix is incomplete. When using the systemd unit file, the recording funtionality is assumed (-r option) and one'll get rasdaemon erroring out. (I had this happen to me and I fixed it by adding the sqlite use flag for the ebuild.)