Re: F26 System Wide Change: Enable coredumpctl by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




---------- Původní zpráva ----------
Od: Lennart Poettering <mzerqung@xxxxxxxxxxx>
Komu: Development discussions related to Fedora <devel@xxxxxxxxxxxxxxxxxxxxxxx>
Datum: 6. 12. 2016 11:11:48
Předmět: Re: F26 System Wide Change: Enable coredumpctl by default


On Tue, 06.12.16 10:16, Miroslav Suchý (msuchy@xxxxxxxxxx) wrote:

> Dne 6.12.2016 v 09:52 Gerd Hoffmann napsal(a):
> > Hmm, isn't this as easy as abrt being able to find and analyze coredumps
> > written by coredumpctl (in addition to the coredumps written by the abrt
> > dumper)?
>
> Yes, it is quite easy. But ABRT cannot do this query every second/minute/hour. So systemd should have mechanism which
> notify ABRT that there is new dump (by push event).

abrt can watch the journal relatively easily. In essence, abrt should
store away a "cursor" (which is a short string that identifies a
location in the journal), that indicates the location it last read
from. And then when running continously:

1. Open the journal sd_journal_open()
2. restrict the output that you only see coredumps with
sd_journal_add_match() specifying a match of: MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1
2. If abrt previously stored a cursor, use it with
sd_journal_seek_cursor()
3. now iterate through the journal: use sd_journal_enumerate_data()/sd_journal_restart_data() to get
any data you want for one specific journal entry, and then
sd_journal_next() to skip to the next.
4. For each entry you want the raw naked coredump for: use the data
included in the COREUMP field if it is there. If not, there's
COREDUMP_FILENAME= which contains the coredump filename.
5. If you reached the end of the journal, use sd_journal_wait() to
wait for more entries as they arrive.

The man in particular of sd_journal_next() and sd_journal_wait() have
longer examples.

There's currently no concept of "service activation by
coredump". That's mostly because it's quite hard to do in a race-free
fashion. It's not sufficient to simply make systemd-coredump call out
to abrt, as that ignores that coredumps can happen during early boot
and late shutdown, and there hence should be an asynchronous element:
processes that happen early on or in the last boot cycle should be
processed during the normal runtime.


Thank you. The service watching journald for coredumps saved by systemd-coredump already exists:


http://abrt.readthedocs.io/en/latest/examples.html#getting-core-files-from-systemd-coredumctl



Jakub



_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]
  Powered by Linux