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. Lennart -- Lennart Poettering, Red Hat _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx