| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This is not needed at the end.
This reverts commit ef96cd431369b2cf0dd640a0bb66be4fb029b9c0.
|
|
|
|
|
| |
- we have a conflict with old report library which contains file
with the same name
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
| |
The conversion is trivial: a few tweaks to one header file
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The smallest data element is:
struct crash_item { char *content; unsigned flags; };
where content is, eh, content, and flags is a bit flag field.
crash_data_t is a map of crash_item's, implemented as a pointer
to heap-allocated GHashTable.
vector_of_crash_data_t is a vector of crash_data_t's, implemented
as a pointer to heap-allocated GPtrArray.
Most operations have light wrappers around them to hide the nature
of the containers. For example, to free vector_of_crash_data,
you need to use free_vector_of_crash_data(ptr) instead of
open-coding g_ptr_array_free. The wrapper is thin.
The goal is not so much to hide the implementation, but more
to make it easier to use the correct function.
dbus (un)marshalling functions convert crash_item to three-element
array of strings, in order to keep compatibility with abrt-gui (python).
This can be changed later to use native representation.
crash_data_t and vector_of_crash_data_t are represented in
"natural" way, no funny stuff there.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch does not change any code per se,
it renames libABRTfoo -> libabrt_bar and moves a few functions around.
After the patch, we are left with the following libs:
libabrt - the stuff shared among most of abrt (like xmalloc, logging)
libabrt_daemon - only daemon-related things are here
(should probably be just moved into daemon - later)
libabrt_dbus - daemon, cli and applet use this
libabrt_web - abrt-action-foo where foo deals with network/web/ftp/...
As a result, we have following reductions in dependent libs:
/usr/libexec/abrt-hook-ccpp:
linux-vdso.so.1 => ()
- libABRTUtils.so.0 => /usr/lib64/libABRTUtils.so.0 ()
+ libabrt.so.0 => /usr/lib64/libabrt.so.0 ()
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 ()
- libdbus-1.so.3 => /lib64/libdbus-1.so.3 ()
- libpthread.so.0 => /lib64/libpthread.so.0 ()
- librt.so.1 => /lib64/librt.so.1 ()
- libdl.so.2 => /lib64/libdl.so.2 ()
/usr/libexec/abrt-action-upload:
linux-vdso.so.1 => ()
libtar.so.1 => /usr/lib64/libtar.so.1 ()
libcurl.so.4 => /usr/lib64/libcurl.so.4 ()
- libABRTdUtils.so.0 => /usr/lib64/libABRTdUtils.so.0 ()
- libABRTUtils.so.0 => /usr/lib64/libABRTUtils.so.0 ()
+ libabrt.so.0 => /usr/lib64/libabrt.so.0 ()
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 ()
- libdbus-1.so.3 => /lib64/libdbus-1.so.3 ()
Similar savings are in almost every abrt-action-foo.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
| |
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specified event
Some reworking of run_action() API was needed
to make it possible to put it into libABRT.
abrt-handle-crashdump has no -l option yet:
$ abrt-handle-crashdump
Usage: abrt-handle-crashdump [-vs] -d DIR -e EVENT
Handle crash dump according to rules in abrt_action.conf
-v, --verbose be verbose
-s Log to syslog
-d DIR Crash dump directory
-e EVENT Event
Can (will) extend it later.
Run-tested: performed "analyze" step by hand with
abrt-handle-crashdump -e analyze -d CRASH_DUMP_DIR
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch replaces only the post-create step with new logic
(the step which happens when abrtd detects fresh crash dump dir
and needs to decide what to do with it), but it turns out
this step is one of hard ones: it needs special handling
of UUID. So a good chunk of hard-ish stuff is already in this patch.
It also contains logic to collect the log from actions,
even though so far it is simply logged. Other steps
(like reporting step) will pipe it to clients.
post-create step simply has no client to pipe output to.
But the code is there already.
GetLocalUUID() members in all plugins are unused now
and are deleted from all classes.
Next patches will move run_event() function into libABRT,
so that it can be used from e.g. abrt-handle-crashdump utility
if/when we will write it, from clients directly and so on.
For now, it lives in MiddleWare.cpp since it is only used there.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Was:
linux-vdso.so.1 => (0x00007fff4e4a0000)
libABRTUtils.so.0 => /usr/lib64/libABRTUtils.so.0 (0x00007f64316c0000)
libABRTdUtils.so.0 => /usr/lib64/libABRTdUtils.so.0 (0x00007f64314b6000)
libpolkit-gobject-1.so.0 => /usr/lib64/libpolkit-gobject-1.so.0 (0x0000003c2c600000)
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003c20a00000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003c1f600000)
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000003c20600000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003c1fa00000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003c1f200000)
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x0000003c28200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f64312b2000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003c1fe00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6431096000)
librt.so.1 => /lib64/librt.so.1 (0x00007f6430e8e000)
libxmlrpc.so.3 => /usr/lib64/libxmlrpc.so.3 (0x0000003c22e00000)
libxmlrpc_util.so.3 => /usr/lib64/libxmlrpc_util.so.3 (0x0000003c23600000)
libxmlrpc_client.so.3 => /usr/lib64/libxmlrpc_client.so.3 (0x0000003c23a00000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003c2c200000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6430c0a000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003c28e00000)
libc.so.6 => /lib64/libc.so.6 (0x00007f643088b000)
libeggdbus-1.so.0 => /usr/lib64/libeggdbus-1.so.0 (0x0000003c30200000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f6430671000)
libz.so.1 => /lib64/libz.so.1 (0x0000003c1e600000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f6430452000)
/lib64/ld-linux-x86-64.so.2 (0x00007f64318d0000)
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007f64301f6000)
libdbus-glib-1.so.2 => /usr/lib64/libdbus-glib-1.so.2 (0x00007f642ffd3000)
libidn.so.11 => /lib64/libidn.so.11 (0x0000003c21200000)
liblber-2.4.so.2 => /usr/lib64/liblber-2.4.so.2 (0x00007f642fdc5000)
libldap-2.4.so.2 => /usr/lib64/libldap-2.4.so.2 (0x00007f642fb80000)
libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f642f951000)
libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f642f694000)
libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f642f468000)
libcom_err.so.2 => /lib64/libcom_err.so.2 (0x0000003c29200000)
libssl3.so => /usr/lib64/libssl3.so (0x00007f642f234000)
libsmime3.so => /usr/lib64/libsmime3.so (0x00007f642f009000)
libnss3.so => /usr/lib64/libnss3.so (0x00007f642eccf000)
libnssutil3.so => /usr/lib64/libnssutil3.so (0x00007f642eab0000)
libplds4.so => /lib64/libplds4.so (0x00007f642e8ad000)
libplc4.so => /lib64/libplc4.so (0x00007f642e6a9000)
libnspr4.so => /lib64/libnspr4.so (0x00007f642e46c000)
libssh2.so.1 => /usr/lib64/libssh2.so.1 (0x0000003c21600000)
libsasl2.so.2 => /usr/lib64/libsasl2.so.2 (0x0000003c34e00000)
libssl.so.10 => /usr/lib64/libssl.so.10 (0x0000003c2d600000)
libcrypto.so.10 => /lib64/libcrypto.so.10 (0x0000003c29a00000)
libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f642e263000)
libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x0000003c2aa00000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f642e02c000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f642ddcf000)
Now:
linux-vdso.so.1 => (0x00007fff187ff000)
libABRTUtils.so.0 => /usr/lib64/libABRTUtils.so.0 (0x00007fb12b24e000)
libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003c1fe00000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb12b032000)
libABRTdUtils.so.0 => /usr/lib64/libABRTdUtils.so.0 (0x00007fb12ae2b000)
libpolkit-gobject-1.so.0 => /usr/lib64/libpolkit-gobject-1.so.0 (0x0000003c2c600000)
libgio-2.0.so.0 => /lib64/libgio-2.0.so.0 (0x0000003c20a00000)
libgobject-2.0.so.0 => /lib64/libgobject-2.0.so.0 (0x0000003c1f600000)
libgmodule-2.0.so.0 => /lib64/libgmodule-2.0.so.0 (0x0000003c20600000)
libgthread-2.0.so.0 => /lib64/libgthread-2.0.so.0 (0x0000003c1fa00000)
librt.so.1 => /lib64/librt.so.1 (0x00007fb12ac23000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x0000003c1f200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fb12aa1f000)
libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x0000003c2c200000)
libm.so.6 => /lib64/libm.so.6 (0x00007fb12a79b000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003c28e00000)
libc.so.6 => /lib64/libc.so.6 (0x00007fb12a41c000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb12b45e000)
libeggdbus-1.so.0 => /usr/lib64/libeggdbus-1.so.0 (0x0000003c30200000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fb12a202000)
libz.so.1 => /lib64/libz.so.1 (0x0000003c1e600000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb129fe3000)
libdbus-glib-1.so.2 => /usr/lib64/libdbus-glib-1.so.2 (0x00007fb129dc0000)
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usage: abrt-action-print [v] -d DIR
Print information about the crash to standard output
-v, --verbose be verbose
-d DIR Crash dump directory
As you can see, it simply writes crash dump information
to stdout, not to a file.
Logger plugin spawns a child abrt-action-print -d DIR
and pipes its output to log file.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tool works similarly to abrt-action-bugzilla:
Usage: abrt-action-rhtsupport -c CONFFILE -d DIR [-vs]
Report a crash to RHTSupport
Options:
-c FILE Configuration file (may be given many times)
-d DIR Crash dump directory
-v Verbose
-s Log to syslog
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Usage: abrt-action-analyze-oops [-vs] -d DIR
Calculates and saves UUID and DUPHASH of oops crash dumps
-v, --verbose be verbose
-d DIR Crash dump directory
-s Log to syslog
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch splits off uuid generation for Python
to a separate program:
Usage: abrt-action-analyze-python [-vs] -d DIR
Calculates and saves UUID and DUPHASH of python crash dumps
-v, --verbose be verbose
-d DIR Crash dump directory
-s Log to syslog
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch splits off uuid generation for CCpp
to a separate program:
Usage: abrt-action-analyze-c [-v] -d DIR
Calculates and saves UUID
-v, --verbose be verbose
-d DIR Crash dump directory
Run tested.
Thus, now entire cycle of coredump processing/reporting
consists of external programs:
abrt-action-analyze-c
abrt-action-save-package-data
abrt-action-install-debuginfo
abrt-action-generate-backtrace
abrt-action-bugzilla
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch splits off Bugzilla plugin's bugzilla submission
generation into a separate tool:
abrt-action-bugzilla: invalid option -- 'z'
Usage: abrt-action-bugzilla -c CONFFILE -d DIR [-vs]
Report a crash to Bugzilla
Options:
-c FILE Configuration file (may be given many times)
-d DIR Crash dump directory
-v Verbose
-s Log to syslog
This change is bigger than previous similar patches:
I needed to find a way to pass settings to the child
and get back reporting result - all without breaking
current interface.
I decided to pass configuration via -c CONFFILE:
(1) it is trivial to pass /etc/abrt/bugzilla.conf to it,
and
(2) I can use "-c -" to parse config from stdin.
abrtd simply write per-reporting settings to child's stdin.
The log and reporting result (success/failure) is
taken from child's stdout.
After a few more such patches, we can remove XMLRPC
and HTTP code and library dependencies from abrtd.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
| |
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
| |
code is run in abrt-action-save-package-data.cpp
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generation into a separate tool:
abrt-action-save-package-data: invalid option -- 'z'
Usage: abrt-action-save-package-data -d DIR [-vs]
Query package database and save package name, component,
and description
Options:
-d DIR Crash dump directory
-v Verbose
-s Log to syslog
This also allows for debugging and regression testing of
abrt-action-save-package-data - it can be simply run
from command-line.
Also it provides a better fault isolation - crash in
abrt-action-save-package-data does not take down abrtd.
Same goes for isolation of memory leaks - old code actually
had leaks on a rarely used error path. New code doesn't,
but if it would have, it wouldn't matter, since the process
is short-lived.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
$ abrt-action-generate-backtrace -z
abrt-action-generate-backtrace: invalid option -- 'z'
Usage: abrt-action-generate-backtrace -d DIR [-i DIR1:DIR2] [-t SECONDS] [-vs]
Generate backtrace, its quality rating, hash, and crashed function
Options:
-d DIR Crash dump directory
-i DIR1:DIR2 Additional debuginfo directories
-t SECONDS Kill gdb if it runs for more than SECONDS
-v Verbose
-s Log to syslog
This also allows for debugging and regression testing of
abrt-action-generate-backtrace separately - it can be simply run
from command-line.
Also it provides a better fault isolation - crash in
abrt-action-generate-backtrace does not take down abrtd.
The code is based on CCpp.cpp.
CCpp analyzer is made to spawn a child to do the backtrace generation.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for every socket client.
This allows for simpler timeout handling
using SIGALRM, and makes timers for tracking client timeouts
unnecessary.
This also allows for debugging and regression testing
of abrt-server separately - it can be simply run from command-line
and fed commands on stdin.
Also it provides a better fault isolation - crash in
abrt-server does not take down abrtd.
The code is based on dumpsocket.{cpp,h}. Most of dumpsocket.cpp
goes to abrt-server.c, a small part goes to Daemon.cpp (i.e. to abrtd).
This change will not compile - it does not have dumpsocket.cpp
renamed to abrt-server.c, which makes the change easier to read.
The next change, which I'll commit after this one,
contains only the renaming.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
|
|
|
|
| |
Contains some other trivial changes
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
|
|
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
|