On Fri, 2011-01-14 at 14:31 +0100, Jiri Moskovcak wrote:
On 01/14/2011 02:19 PM, Denys Vlasenko wrote:
> Patch adds new tool:
>
> $ abrt-dump-oops
> Usage: abrt-dump-oops [-vsrdow] FILE
>
> Extract oops from syslog/dmesg file
>
> -v, --verbose Be verbose
> -s Log to syslog
> -r Parse kernel's message buffer before parsing FILE
> -d Create ABRT dump for every oops found
> -o Print found oopses on standard output
> -w Do not exit, watch the file for new oopses
>
> It extends dumpoops. Extensions:
> * it can watch the syslog using -w option (uses inotify)
> * it can scan dmesg buffer too
>
> In this way, it also becomes a replacement for KerneloopsScanner plugin:
> oops-detecting logic is taken verbatim from KerneloopsScanner source.
>
> abrtd is changed to start it if it sees this directive in abrt.conf:
- so it runs as a daemon? I don't like it and I bet a lot more people
wont, because it will slow down the booting and it's not necessary as it
can be run when the file changes
There are things which are hard to do, and/or ugly if the watching is
done in the daemon. From the top of my head:
* Tracking current scan position across scanner invocations would be
ugly both in design and in implementation.
* Pausing scanning between scans, and pausing it when the file is
missing (imagine that /var/log/messages is deleted and recreated
sometime after...) will require complicated logic of remembering
inotify events and delaying acting on them. IOW: some timers will need
to be added to abrtd's main loop, and it already is complicated.
To be honest, to me log scanners, ccpp hook and the server which saves
python crashes (currently, +java etc to follow) look more like separate
services.
However, the goal of this patch is not to explore that road.
This patch wants to do with last bits of "old" plugins.
We can discuss and change the way we run services later.
> KerneloopsScanner = /var/log/messages
- I don't like this, because the name of abrt-dump-oops is then
hardcoded somewhere, which goes against our "modular" design - how would
you add other scanner?
... I think something like:
[LogScanners]
/var/log/messages = abrt-dump-oops
would be better
We can simply list the full invocation then:
[LogScanners]
abrt-dump-oops -drw /var/log/messages
--
vda