Interfacing with ABRT¶
Socket API allows creation of new problems. It is used by Python and Java hooks
to pass required data to
First line has to contain HTTP header:
POST / HTTP/1.1\r\n\r\n
key=value pairs delimited with
The server expects another
\0 at the end of the message.
type— (string) problem type, see Supported problem types.
pid— (integer) process ID of the crashed procss, ranges from 0 to PID_MAX (
executable— (string) path of the affected executable
reason— (string) reason of the crash
To ensure the problem can be reported to Bugzilla via report-gtk or report-cli you have to add the following keys with the following contents:
duphash— (string) duplicate hash. The hash is placed in Bugzilla’s
Whiteboardfield in the format
abrt_hash:$duphash. For C/C++, the content of
duphashis the SHA-1 digest of the concatenation of the names of top six functions on the stacktrace. For Python exceptions, it is the SHA-1 digest of the stacktrace.
uuid— (string) local identifier of the problem. The content can be the same as for
Optionally, the server accepts other elements listed in Elements collected by ABRT.
If there’s no error, the server responds with:
HTTP/1.1 201 Created\r\n\r\n
400 status code in case of error.
Python hook may serve as an example of the socket API usage.
Documentation for the DBus API at
org.freedesktop.problems is available as part
abrt-dbus package or online at
Documentation for the Python API is available in the
python3-abrt(5) man page
(part of the