[systemd-devel] [PATCH] [RFCv7] Optionally save core dumps as plain files
Lennart Poettering
lennart at poettering.net
Fri Jun 20 11:02:54 PDT 2014
On Tue, 14.05.13 19:09, Oleksii Shevchuk (alxchk at gmail.com) wrote:
Heya!
Sorry for resurrecting this thread from last year. I never found the
time to merge this, but I finally had a closer look and then sat down
and tried to isolate out of it what I liked and what I didn't. I
commited different patches for this though. Sorry for the looooong
delay!
So here's what is implemented in git now:
a) There's a configuration file /etc/systemd/coredump.conf with some of
the options you proposed.
b) We will now store coredumps outside of the journal by default, but
you can also place them in the journal only, or at both places.
c) I hooked this thing up with elfutils' libdw, which gives us pretty,
native backtraces in the journal now, without involving gdb or
anything like that. Only a minimal (optional) dependency on libdw to
get them. And the best thing is that elfutils is actually maintained
and can read debuginfo files, unlike some other options for stuff
like this (like libunwind).
d) I hooked this up with ACLs so that a user can read but not change his
own coredumps stored in /var.
What I didn't take:
1) the API to specify external programs for compressing or processing
the coredumps. I am really not too fond of doing things with invokign
external programs. THat's always chickening out in my eyes, avoiding
to solve the problems properly. By using elfutils' libdw we get the
backtrace feature nicely integrated now without invoking external
programs, I guess the need for PreprocessJournal= is hence redundant
with that. There's no support for compression though, but I'd be fine
with taking a simple patch for that that directly speaks to the xz
APIs. After all we link against the xz already. Of course this would
need support in both the coredump hook to transparently compress the
coredumps and in coredumpctl on the client side so that "coredumpctl
gdb" just works without manual decompression.
2) I change the paths to store this in. I drop the coredumps in
/var/lib/systemd/coredump/ now. While the journal logs appear to be
something worth sharing across the network as "logs"; I am not
convinced that the coredumps would fit that category.
Anyway, I hope this makes sense.
With these changes coredumpctl actually is now really useful and just
works. I have thus dropped the "systemd-" prefix. We should probably
start advertising it more.
Lennart
--
Lennart Poettering, Red Hat
More information about the systemd-devel
mailing list