2021-09-10 13:40:48 +02:00
|
|
|
= Retrace SOP
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
Retrace server - provides complete tracebacks for unhandled crashes and
|
|
|
|
show aggregated information for developers.
|
|
|
|
|
|
|
|
== Contact Information
|
|
|
|
|
|
|
|
Owner:::
|
|
|
|
Fedora QA Devel, Fedora Infrastructure Team, ABRT team
|
|
|
|
Contact:::
|
|
|
|
#abrt, #fedora-admin, #fedora-noc
|
|
|
|
Servers:::
|
|
|
|
retrace*, faf*
|
|
|
|
Purpose:::
|
|
|
|
Provides complete tracebacks for unhandled crashes and show aggregated
|
|
|
|
information for developers.
|
|
|
|
|
|
|
|
== Description
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
The physical server (_retrace.fedoraproject.org_) runs two main services:
|
|
|
|
_retrace-server_ and _FAF_.
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
=== Retrace-server
|
|
|
|
|
|
|
|
The upstream for retrace server lives at:
|
|
|
|
|
|
|
|
____
|
|
|
|
https://github.com/abrt/retrace-server
|
|
|
|
____
|
|
|
|
|
|
|
|
When a user has the ABRT client installed and a process crashes with an
|
|
|
|
unhandled exception (e.g., traceback or core dump), the user can send a
|
2021-09-10 13:40:48 +02:00
|
|
|
request to _retrace-server_. The server will install the same set of
|
2021-07-26 10:39:47 +02:00
|
|
|
packages plus debuginfo, and will return a traceback to the user that
|
|
|
|
includes function names instead of plain pointers. This information is
|
|
|
|
useful for debugging.
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
The upstream _retrace-server_ allows users to upload coredumps through a
|
2021-07-26 10:39:47 +02:00
|
|
|
web interface, but the Fedora instance disables this feature.
|
|
|
|
|
|
|
|
=== FAF
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
When a user decides to report a crash, data is sent to _FAF_. ABRT can
|
2021-07-26 10:39:47 +02:00
|
|
|
also be configured to send microreports automatically, if desired.
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
_FAF_ can aggregate similar reports into one entity (called a Problem).
|
|
|
|
_FAF_ provides a nice web interface for developers, allowing them to see
|
2021-07-26 10:39:47 +02:00
|
|
|
crashes of their packages. It lives at:
|
|
|
|
|
|
|
|
____
|
|
|
|
https://retrace.fedoraproject.org/faf/
|
|
|
|
____
|
|
|
|
|
|
|
|
== Playbook
|
|
|
|
|
|
|
|
The playbook is split into several roles. There are two main roles
|
|
|
|
|
|
|
|
* abrt/faf
|
|
|
|
* abrt/retrace
|
|
|
|
|
|
|
|
These roles are copied from upstream. You should never update it
|
|
|
|
directly. The new version can be fetched from upstream using:
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|
|
|
|
cd ansible/abrt
|
|
|
|
rm -rf faf retrace
|
|
|
|
ansible-galaxy install -f -r requirements.yml --ignore-errors -p ./
|
|
|
|
....
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
You should review the new differences, and commit and push.
|
|
|
|
|
|
|
|
Then there are some roles which are local for our instance:
|
|
|
|
|
|
|
|
____
|
|
|
|
* abrt/faf-local - This is run _before_ abrt/faf.
|
|
|
|
* abrt/retrace-local - This is run _after_ abrt/retrace.
|
|
|
|
* abrt/retrace-local-pre - This is run _before_ abrt/retrace.
|
|
|
|
____
|
|
|
|
|
|
|
|
== Services
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
_FAF_ and _retrace-server_ are web applications; only httpd is required.
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
== Cron
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
_FAF_ and _retrace-server_ each have cron tasks. They are _not_ installed
|
|
|
|
under `/etc/cron*` but are installed as user cron jobs for the 'faf' and
|
2021-07-26 10:39:47 +02:00
|
|
|
'retrace' users.
|
|
|
|
|
|
|
|
You can list those crons using:
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|
|
|
|
sudo -u faf crontab -l
|
|
|
|
sudo -u retrace crontab -l
|
|
|
|
....
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
All cronjobs should be Ansible managed. Just make sure if you delete
|
|
|
|
some cron from Ansible that it does not remain on the server (not always
|
|
|
|
possible with state=absent).
|
|
|
|
|
|
|
|
== Directories
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
* `/srv/ssd` - fast disk, used for PostgreSQL storage
|
|
|
|
* `/srv` - big fat disk, used for storing packages. Mainly:
|
|
|
|
** `/srv/faf/lob`
|
|
|
|
** `/srv/retrace`
|
|
|
|
* `/srv/faf/db-backup/` - Daily backups of DB. No rotating yet. Needs to be
|
2021-07-26 10:39:47 +02:00
|
|
|
manually deleted occasionally.
|
2021-09-10 13:40:48 +02:00
|
|
|
* `/srv/faf/lob/InvalidUReport/` - Invalid reports, can be pretty big.
|
2021-07-26 10:39:47 +02:00
|
|
|
No automatic removal too. Need to be purged manually occasionally.
|
|
|
|
|
|
|
|
== Front-page
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
The main web page is handled by the _abrt-server-info-page_
|
2021-07-26 10:39:47 +02:00
|
|
|
package, which can be controlled using:
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|
2021-07-26 10:39:47 +02:00
|
|
|
/usr/lib/python2.7/site-packages/abrt-server-info-page/config.py
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|
2021-07-26 10:39:47 +02:00
|
|
|
|
|
|
|
== DB
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
Only _FAF_ uses a database. We use our own instance of PostgreSQL. You can
|
2021-07-26 10:39:47 +02:00
|
|
|
connect to it using:
|
|
|
|
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|
2021-07-26 10:39:47 +02:00
|
|
|
sudo -u faf psql faf
|
2021-09-10 13:40:48 +02:00
|
|
|
....
|