From Fedora Project Wiki

Revision as of 11:36, 9 November 2010 by Mtoman (talk | contribs) (Updated "How To Test" section, added abrt-addon-ccpp dependency)

<nowiki>Insert non-formatted text here</nowiki>= Retrace Server =

Summary

Server that simplifies coredump analysis.

Owner

  • Email: mtoman@redhat.com

Current Status

  • Targeted release: Fedora 15
  • Last updated: 2010-11-09
  • Percentage of completion: 50%

Detailed description

At the moment of backtrace creation, user needs to have all relevant debuginfos installed locally. Downloading and installing them may require a lot of time and storage space. The idea of Retrace Server is to liberate users from this: User sends the coredump packed along with some other required information (e.g. packages list) to the Retrace Server, the Retrace Server installs required debuginfos, creates backtrace and provides it to the user.

Benefit to Fedora

No need to download debuginfo packages while creating backtrace from various binary crashes.

Scope

The project itself consists of 3 parts:

  • Interface: Receives the archive from user, unpacks all files, puts new task into the queue.
  • Analyzer: Takes the task from queue, for each creates a virtual root with all required packages and debuginfos installed and creates the backtrace within.
  • Repo Synchronizer: Downloads packages to a local repository containing all versions of all packages, to be able to handle crashes from older versions.

ABRT plugin that packs required files and sends the archive to the Retrace Server must be implemented.

How To Test

The communication between client and server will be handled by future ABRT plugin. As soon as it is implemented, the testing script will be removed.


At the moment, testing is possible using "test-uploader" from "retrace" branch of ABRT Git repository. The script is only designed for test purposes and does not handle all errors possible.

Usage:

The script upload.py takes two arguments:

First (mandatory) - ABRT crash directory, by default found in the /var/spool/abrt/ directory.

Second (optional) - Retrace server address (not important at the moment, there is only one testing machine running retrace server - simona.expresmu.sk).

Running upload.py with different number of arguments will display short help message.

Running upload.py with no errors will create the archive containing coredump and some additional information, upload it to the retrace server (through HTTPS) and start the retrace job.


Script's output includes raw HTTP response containig X-Task-Id and X-Task-Password headers. You may ask the retrace server about three things using these headers:

  • Status - HTTP response contains X-Task-Status header with one of three values 'PENDING', 'FINISHED_SUCCESS', 'FINISHED_FAILURE'. wget may be used to show the output (the response has no body):

wget -S --no-check-certificate -O /dev/null --header="X-Task-Password: <Task-Password>" "https://simona.expresmu.sk/<Task-Id>/"

  • Log - Afrer retrace is finished (FINISHED_SUCCESS or FINISHED_FAILURE) the log is available. wget may be used to show the output:

wget -S --no-check-certificate --header="X-Task-Password: <Task-Password>" "https://simona.expresmu.sk/<Task-Id>/log"

  • Backtrace - Afrer successful retrace (FINISHED_SUCCESS) the backtrace is available. wget may be used to show the output:

wget -S --no-check-certificate --header="X-Task-Password: <Task-Password>" "https://simona.expresmu.sk/<Task-Id>/backtrace"


Each Task-Password is for single use. After every status / log / backtrace request, the response contains X-Task-Password header with new Task-Password.

This section needs to be completed for FESCo submission poelcat 16:45, 4 November 2010 (UTC)

Dependencies

  • abrt-addon-ccpp
  • gdb
  • xz
  • mod_wsgi
  • python-webob

Contingency Plan

Not required, feature can easily be disabled.

Documentation

Comments and Discussion