(make information up to date) |
|||
(27 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
= Retrace Server = | = Retrace Server = | ||
== Summary == | == Summary == | ||
Retrace server allows ABRT users to get better backtraces from their crashes by retracing coredumps remotely, on a server owned by Fedora Project. | |||
== Owner == | == Owner == | ||
Line 9: | Line 9: | ||
<!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or technical issues need to be resolved--> | <!-- Include you email address that you can be reached should people want to contact you about helping with your feature, status is requested, or technical issues need to be resolved--> | ||
* Email: mtoman@redhat.com | * Email: mtoman@redhat.com | ||
=== Co-workers === | |||
* The ABRT team | |||
* E-mail: crash-catcher@lists.fedoraproject.org | |||
* Name: [[User:kklic|Karel Klic]] | |||
* Name: [[User:jmoskovc|Jiri Moskovcak]] | |||
== Current Status == | == Current Status == | ||
* Targeted release: [[Releases/15 | Fedora 15]] | * Targeted release: [[Releases/15 | Fedora 15]] | ||
* Last updated: | * Last updated: 2011-05-13 | ||
* Percentage of completion: | * Percentage of completion: 100% | ||
== Detailed description == | == Detailed description == | ||
When ABRT generates a backtrace from a coredump, it needs debuginfo data to be available for the binary and all libraries involved in the crash. Debuginfo packages require a lot of storage space, and sometimes they are not available at all -- a package update causes the removal of older updates of the same package and their debuginfo. | |||
Another problem is that GDB (which generates the backtrace from the coredump) needs data from the binary and libraries that were involved in the crash. If a user updated some relevant package between observing the crash and reporting it, he might be unable to generate a good quality backtrace because of the updates. This happens often, because Fedora is updated frequently. | |||
Retrace server is one possibility to solve these issues. ABRT offers user to upload her coredump to a remote server, then the retracing step happens there. The server creates an environment identical to what was on the user's computer at the time of the crash, by installing all the required packages and their debuginfo. The retrace server is able to do that because it keeps all the older packages from updates, and relevant part of updates-testing locally on the server. | |||
After creating the backtrace, only the submitter is allowed to download/view it. | |||
== Benefit to Fedora == | == Benefit to Fedora == | ||
Users: | |||
# Less disk space and processing time needed to use ABRT to report crashes. | |||
# Possibility to report older crashes. | |||
# Lower chance of failure, less time spent on crashes which cannot be retraced because debuginfo is no longer available. | |||
Developers: | |||
# Higher quality of ABRT reports. | |||
# Possibility to quickly get a backtrace from any/random Fedora coredump. | |||
== Scope == | == Scope == | ||
ABRT is extended to support Retrace Server. | |||
Retrace server is installed on https://retrace.fedoraproject.org. | |||
The server implementation consists of three parts: | |||
* '''HTTP Interface''': Receives the archive with a coredump from user, unpacks all files, puts new task into the queue. | |||
* '''Analyzer''': Takes a task from queue, creates a virtual root with all required packages and debuginfos installed and runs GDB to create the backtrace. | |||
* '''Repository Synchronizer''': Downloads packages to a local repository containing all versions of all packages (no removal of older updates). | |||
== How To Test == | == How To Test == | ||
CLI retrace client can be built from [http://git.fedorahosted.org/git/?p=abrt.git ABRT Git repository]. CLI is integrated into latest ABRT GUI (analyze_RetraceServer). | |||
'''Usage''' | |||
<pre> | |||
$ abrt-retrace-client | |||
Usage: abrt-retrace-client <operation> [options] | |||
Operations: create/status/backtrace/log/batch | |||
-v, --verbose Be verbose | |||
-s, --syslog log to syslog | |||
-k, --insecure allow insecure connection to retrace server | |||
--url URL retrace server URL | |||
--headers (debug) show received HTTP headers | |||
For create and batch operations | |||
-d, --dir DIR read data from ABRT crash dump directory | |||
-c, --core COREDUMP read data from coredump (not yet implemented) | |||
--no-unlink (debug) do not delete temporary archive created from dump dir in /tmp | |||
For status, backtrace, and log operations | |||
-t, --task ID id of your task on server | |||
-p, --password PWD password of your task on server | |||
</pre> | |||
Create a new retrace job: | |||
<pre> | |||
$ abrt-retrace-client create -d ~/.abrt/spool/ccpp-whatever | |||
Task ID: 123456789 | |||
Task Password: qwerty123456 | |||
</pre> | |||
Ask for status: | |||
<pre> | |||
$ abrt-retrace-client status -t 123456789 -p qwerty123456 | |||
PENDING / FINISHED_SUCCESS / FINISHED_FAILURE | |||
</pre> | |||
Ask for log: | |||
<pre> | |||
$ abrt-retrace-client log -t 123456789 -p qwerty123456 | |||
log (text/plain) | |||
</pre> | |||
Ask for backtrace: | |||
<pre> | |||
$ abrt-retrace-client backtrace -t 123456789 -p qwerty123456 | |||
backtrace (text/plain) | |||
</pre> | |||
Batch processing (all-in-one): | |||
<pre> | |||
$ abrt-retrace-client batch -d ~/.abrt/spool/ccpp-whatever | |||
[create] | |||
[status] PENDING | |||
[status] PENDING | |||
[status] PENDING | |||
[status] FINISHED_SUCCESS | |||
[backtrace] | |||
</pre> | |||
The retrace server at {{filename|retrace01.fedoraproject.org}} (used by default) is configured to handle crashes for the following releases: | |||
* Fedora 15 i686 | |||
* Fedora 15 x86_64 | |||
== User Experience == | |||
ABRT reporting wizard offers a possibility to use retrace server instead of local retracing to generate a backtrace. Local retracing is still the default action. | |||
== Dependencies == | == Dependencies == | ||
* | * new version of {{package|abrt|ABRT}}, supporting the retrace server option | ||
* xz | * a server with the retrace server application up and running | ||
* mod_wsgi | |||
* python-webob | Server code dependencies: | ||
* {{package|mock}} | |||
* {{package|xz}} | |||
* {{package|elfutils}} | |||
* {{package|createrepo}} | |||
* {{package|mod_ssl}} | |||
* {{package|mod_wsgi}} | |||
* {{package|python-webob}} | |||
== Contingency Plan == | == Contingency Plan == | ||
Hide the possibility of using the retrace server from users in ABRT's graphical user interface. | |||
== Documentation == | == Documentation == | ||
* https://fedorahosted.org/abrt/ | * [https://fedorahosted.org/abrt/attachment/wiki/AbrtRetraceServer/retrace-server Design document] | ||
* [https://fedorahosted.org/abrt/wiki/AbrtRetraceServer Retrace server wiki page on ABRT wiki] | |||
== Release Notes == | |||
ABRT, a crash reporting tool in Fedora, now allows to prepare a part of crash processing remotely, on a server owned by Fedora Project. Remote coredump retracing leads to better quality of reports. Retrace server can generate good backtraces with much higher success rate than local retracing. | |||
== Comments and Discussion == | == Comments and Discussion == | ||
* See [[Talk:Features/RetraceServer]] | * See [[Talk:Features/RetraceServer]] | ||
[[Category: | [[Category:FeatureAcceptedF15]] |
Latest revision as of 12:10, 13 May 2011
Retrace Server
Summary
Retrace server allows ABRT users to get better backtraces from their crashes by retracing coredumps remotely, on a server owned by Fedora Project.
Owner
- Name: Michal Toman
- Email: mtoman@redhat.com
Co-workers
- The ABRT team
- E-mail: crash-catcher@lists.fedoraproject.org
- Name: Karel Klic
- Name: Jiri Moskovcak
Current Status
- Targeted release: Fedora 15
- Last updated: 2011-05-13
- Percentage of completion: 100%
Detailed description
When ABRT generates a backtrace from a coredump, it needs debuginfo data to be available for the binary and all libraries involved in the crash. Debuginfo packages require a lot of storage space, and sometimes they are not available at all -- a package update causes the removal of older updates of the same package and their debuginfo.
Another problem is that GDB (which generates the backtrace from the coredump) needs data from the binary and libraries that were involved in the crash. If a user updated some relevant package between observing the crash and reporting it, he might be unable to generate a good quality backtrace because of the updates. This happens often, because Fedora is updated frequently.
Retrace server is one possibility to solve these issues. ABRT offers user to upload her coredump to a remote server, then the retracing step happens there. The server creates an environment identical to what was on the user's computer at the time of the crash, by installing all the required packages and their debuginfo. The retrace server is able to do that because it keeps all the older packages from updates, and relevant part of updates-testing locally on the server.
After creating the backtrace, only the submitter is allowed to download/view it.
Benefit to Fedora
Users:
- Less disk space and processing time needed to use ABRT to report crashes.
- Possibility to report older crashes.
- Lower chance of failure, less time spent on crashes which cannot be retraced because debuginfo is no longer available.
Developers:
- Higher quality of ABRT reports.
- Possibility to quickly get a backtrace from any/random Fedora coredump.
Scope
ABRT is extended to support Retrace Server.
Retrace server is installed on https://retrace.fedoraproject.org.
The server implementation consists of three parts:
- HTTP Interface: Receives the archive with a coredump from user, unpacks all files, puts new task into the queue.
- Analyzer: Takes a task from queue, creates a virtual root with all required packages and debuginfos installed and runs GDB to create the backtrace.
- Repository Synchronizer: Downloads packages to a local repository containing all versions of all packages (no removal of older updates).
How To Test
CLI retrace client can be built from ABRT Git repository. CLI is integrated into latest ABRT GUI (analyze_RetraceServer).
Usage
$ abrt-retrace-client Usage: abrt-retrace-client <operation> [options] Operations: create/status/backtrace/log/batch -v, --verbose Be verbose -s, --syslog log to syslog -k, --insecure allow insecure connection to retrace server --url URL retrace server URL --headers (debug) show received HTTP headers For create and batch operations -d, --dir DIR read data from ABRT crash dump directory -c, --core COREDUMP read data from coredump (not yet implemented) --no-unlink (debug) do not delete temporary archive created from dump dir in /tmp For status, backtrace, and log operations -t, --task ID id of your task on server -p, --password PWD password of your task on server
Create a new retrace job:
$ abrt-retrace-client create -d ~/.abrt/spool/ccpp-whatever Task ID: 123456789 Task Password: qwerty123456
Ask for status:
$ abrt-retrace-client status -t 123456789 -p qwerty123456 PENDING / FINISHED_SUCCESS / FINISHED_FAILURE
Ask for log:
$ abrt-retrace-client log -t 123456789 -p qwerty123456 log (text/plain)
Ask for backtrace:
$ abrt-retrace-client backtrace -t 123456789 -p qwerty123456 backtrace (text/plain)
Batch processing (all-in-one):
$ abrt-retrace-client batch -d ~/.abrt/spool/ccpp-whatever [create] [status] PENDING [status] PENDING [status] PENDING [status] FINISHED_SUCCESS [backtrace]
The retrace server at retrace01.fedoraproject.org
(used by default) is configured to handle crashes for the following releases:
- Fedora 15 i686
- Fedora 15 x86_64
User Experience
ABRT reporting wizard offers a possibility to use retrace server instead of local retracing to generate a backtrace. Local retracing is still the default action.
Dependencies
- new version of
ABRT
, supporting the retrace server option - a server with the retrace server application up and running
Server code dependencies:
Contingency Plan
Hide the possibility of using the retrace server from users in ABRT's graphical user interface.
Documentation
Release Notes
ABRT, a crash reporting tool in Fedora, now allows to prepare a part of crash processing remotely, on a server owned by Fedora Project. Remote coredump retracing leads to better quality of reports. Retrace server can generate good backtraces with much higher success rate than local retracing.